Text Mining

Introduction

As part of the course “Text Mining”, we have decided to analyze the reviews of different hotels. The aim of the project is to see if a model is capable of recognizing and predict a hotel based on its reviews. The ones considered for this analysis are the Econo Lodge Times Square, the Hotel St. James, the Four Season and the Peninsula. All of them are located in New York.

Original Data Gathering

To scrap data from Tripadvisor, we decided to use the package “rvest” and create a function that would scrap the reviews from Tripadvisor related to the hotel selected. The function uses the URL of the hotel and the number of reviews desired (in multiple of 5) as input and output a dataframe containing the review, the date of stay as well as the rating. As it is a process that is time consuming, we decided to save the different scraps we did and use them for our analysis. We will use a subset of only 50 reviews for the exploratory data analysis (called “data_scrapped_50.RDA”) and a subset of 500 reviews for the supervised learning (called “Reviews_500.rds”). You can see the function as well as the code to scrap the reviews by clicking on the “code” button at the bottom-right of this paragraph. Note that the data used for this analysis has been scrapped in November 2020.

#function used to scrap the data

library(tidyverse)
library(rvest)

get_review <- function(url, n) {
  review <- data.frame()
  
  if (n %% 5 != 0) {stop("n need to be a multiple of 5")}
  
  number_pages <- n/5
  
  for (i in seq_len(number_pages)) {
    blocks_url <- str_split(url, "-") %>% unlist()
    start_url <- paste0(blocks_url[1], "-", blocks_url[2], "-", blocks_url[3], "-", blocks_url[4])
    end_url <- paste0("-", blocks_url[5])
    
    if (i == 1) {
      review_url <- paste0(start_url, end_url, "#REVIEWS")
    }
    
    else {
      review_url <- paste0(start_url, "-or", (i-1)*5, end_url, "#REVIEWS")
    }
    
    html <- read_html(review_url)
    
    for(r in 3:7){
    
    temp <- data_frame()
    temp_rev <- data_frame()
    temp_date <- data_frame()
    temp_rating <- data_frame()
    
    revi <- html_nodes(html, paste0('#component_15 > div > div:nth-child(3) > div:nth-child(',r,') > div.oETBfkHU > div._3hDPbqWO > div._2f_ruteS._1bona3Pu > div.cPQsENeY > q'))
    temp_rev <- html_text(revi)
    
    date_r <- html_nodes(html, paste0('#component_15 > div > div:nth-child(3) > div:nth-child(',r,') > div.oETBfkHU > div._3hDPbqWO > div._1O8E5N17 > span._34Xs-BQm'))
    temp_date <- html_text(date_r) %>% str_sub(start= 15)
    
    temp <- temp_rev %>% merge(temp_date)
    
    rating_r <- html_nodes(html, paste0('#component_15 > div > div:nth-child(3) > div:nth-child(',r,') > div.oETBfkHU > div._2UEC-y30 > div > span'))
    temp_rating <- rating_r %>% xml_attr("class") %>% str_sub(start = -2) %>% as.numeric()/10
    
    temp <- temp %>% cbind(temp_rating)
    
    colnames(temp) <- c("review", "date_stay", "rating")
    
    review <- review %>% rbind(temp)
    }
  }
  return(review)
}


#For our specific use

# urls of the hotels
url <- c(
  "https://www.tripadvisor.com/Hotel_Review-g60763-d93359-Reviews-Econo_Lodge_Times_Square-New_York_City_New_York.html",
  "https://www.tripadvisor.com/Hotel_Review-g60763-d290978-Reviews-Hotel_St_James-New_York_City_New_York.html",
  "https://www.tripadvisor.com/Hotel_Review-g60763-d10330604-Reviews-Four_Seasons_Hotel_New_York_Downtown-New_York_City_New_York.html",
  "https://www.tripadvisor.com/Hotel_Review-g60763-d113311-Reviews-The_Peninsula_New_York-New_York_City_New_York.html"
)

# get 50 reviews per hotel
n <- 50

econo_review <- get_review(url[1], n)
st_james_review <- get_review(url[2], n)
four_seasons_review <- get_review(url[3], n)
peninsula_review <- get_review(url[4], n)

#save environment 

save(econo_review, st_james_review, four_seasons_review, peninsula_review, file = here::here("Data/data_scrap_50.RData"))


# Get all reviews
n <- 500

econo_review <- get_review(url[1], n)
st_james_review <- get_review(url[2], n)
four_seasons_review <- get_review(url[3], n)
peninsula_review <- get_review(url[4], n)

# merge and save reviews

econo_review_ <- econo_review %>% mutate(hotel = "Econo")
st_james_review_ <- st_james_review %>% mutate(hotel = "St-james")
four_seasons_review_ <- four_seasons_review %>% mutate(hotel = "four seasons")
peninsula_review_ <- peninsula_review %>% mutate(hotel = "Peninsula")

reviews <- rbind(econo_review_, st_james_review_, four_seasons_review_, peninsula_review_)
saveRDS(reviews, file = here::here("Data/Reviews_500.rds"))

Exploratory Data Analysis - Individual

To debute the exploratory data analysis, we start by cleaning the data. In other words, we first create the different corpuses, before proceeding with the tokenization. It includes removing numbers, punctuation signs and other special characters. Following this, we perform the lemmatization task and remove stop words.


#load data from overall_scrap
load(file = here::here("Data/data_scrap_50.RData"))

# To begin the analysis, we convert all reviews into "character" type.
econo_review$review <- as.character(econo_review$review) 
four_seasons_review$review <- as.character(four_seasons_review$review)
peninsula_review$review <- as.character(peninsula_review$review)
st_james_review$review <- as.character(st_james_review$review)


## Create corpus
#Econo Lodge
econo_reviews.tb <- as_tibble(data.frame(econo_review))
econo_reviews.cp <- corpus(econo_review$review)
#summary(econo_reviews.cp)

#Four Seasons
four_seasons_reviews.tb <- as_tibble(data.frame(four_seasons_review))
four_seasons_reviews.cp <- corpus(four_seasons_review$review)
#summary(fseasons_reviews.cp)

#Peninsula
peninsula_reviews.tb <- as_tibble(data.frame(peninsula_review))
peninsula_reviews.cp <- corpus(peninsula_review$review)
#summary(peninsula_reviews.cp)

#St-James
st_james_reviews.tb <- as_tibble(data.frame(st_james_review))
st_james_reviews.cp <- corpus(st_james_review$review)
#summary(st_james_reviews.cp)

#simplifier avec un for loop?

## Tokenization

#Econo Lodge
econo_reviews.tok <- tokens(econo_reviews.cp, remove_numbers=TRUE, remove_punct=TRUE, remove_symbols=TRUE, remove_separators=TRUE)

econo_reviews.tok <- econo_reviews.tok %>% tokens_tolower() %>% tokens_replace(pattern=hash_lemmas$token, replacement = hash_lemmas$lemma) %>% tokens_remove(stopwords("english"))

#Four Seasons
four_seasons_reviews.tok <- tokens(four_seasons_reviews.cp, remove_numbers=TRUE, remove_punct=TRUE, remove_symbols=TRUE, remove_separators=TRUE)

four_seasons_reviews.tok <-four_seasons_reviews.tok %>% tokens_tolower() %>% tokens_replace(pattern=hash_lemmas$token, replacement = hash_lemmas$lemma) %>% tokens_remove(stopwords("english"))

#Peninsula
peninsula_reviews.tok <- tokens(peninsula_reviews.cp, remove_numbers=TRUE, remove_punct=TRUE, remove_symbols=TRUE, remove_separators=TRUE)

peninsula_reviews.tok <-peninsula_reviews.tok %>% tokens_tolower() %>% tokens_replace(pattern=hash_lemmas$token, replacement = hash_lemmas$lemma) %>% tokens_remove(stopwords("english"))

#St-James
st_james_reviews.tok <- tokens(st_james_reviews.cp, remove_numbers=TRUE, remove_punct=TRUE, remove_symbols=TRUE, remove_separators=TRUE)

st_james_reviews.tok <-st_james_reviews.tok %>% tokens_tolower() %>% tokens_replace(pattern=hash_lemmas$token, replacement = hash_lemmas$lemma) %>% tokens_remove(stopwords("english"))

DFM

The Document Term Matrix allows to represent the corpus by a matrix, in which the rows represent the different reviews (documents), and the columns the types of tokens that are present in the corpus. The frequencies are given in the cells. This analysis is done for all four hotels.

Econo lodge

econo.dfm <- dfm(econo_reviews.tok)
head(econo.dfm, 5) %>% kable(caption = "DFM - Econo lodge") %>% kable_styling(bootstrap_options = c("striped", "hover"), position = "center")
DFM - Econo lodge
doc_id location square still quiet hotel friendly staff clean breakfast starbucks dunkin etc also around corner visit next time new york absolutely stay there- straight back find another smelly dirty place small room old furniture ever box anywhere even take bath tub dingy dusty run definitely timey smell carpet although coffee space charge resort fee lot trip block come sure check elevator extend past 6th floor 7th clerk health artificial cardiac bypass hypertension management change additionally day order ice machine entire sofa bed thermostat set temperature emergency door outside alarm open frigid air legal issue electrical abound serious safety message manager one call desk different nothing econolodge perfect overnight safe sleep good value close theater district tiny use overall pleasant central service great need make clear debt card policy amount equal total city just happy always coffie lobby quaint comfortable ideal everything want see price unbeatable granddaughter wish post photo move chair front get foot walk side crawl thin complimentary ear necessary creepy man every night continental plus distance gershwin theatre eat housekeeping maintenance quickly nice short long bus niagara sight adequate free honest real helpful within yes mother fine spend explore many yet ave street complaint quite warm way regulate research really beat plan big apple gross slow curt rust hard hair fresh road literally thing worth accommodation two leave luggage little loud saturday attentive functional basic description shame plenty money usd extra per queen instead regular double american width narrow fact hotwire expedia ask refund give affordable cozy comfy part though proximity maybe min fantastic right heart activity arrive early pm check-in additional person us store bag nickel diming opinion fairly area sit enough start something young daughter 20k subway 5min prior type bad unable restroom freshen size condition dark relax closet hang wonderful econo lodge usually choice combination cash feel like customer look forward low budget fault approx max centre noisy useful morning average bread toaster selection provide 24hr tea late afternoon pretty english bathroom excellent arrival wi-fi access speed cancellation property 1am desperately bank holiday ny full cost three let moment sound cheap extremely less since nyc steep discount pay go probably waayyy people hardly near however much first conditioner cold reception attend already watch show 3am sleepy wait hour defrost temporary fix transfer wall shower pressure typical minimal 8th avenue conscious kindness taste toast jam cheese cereal cupcake easily mini bar daren’t answer seriously excellant tidy buffet fruit tip honestly fabulous environment office member food delicious love hopefully tight pleasent cheerful availability storage convient fir tv appreciate available recommend juice decaff typically contain usb tablet can wifi stream sterling dollar exchange rate certainly personal bibi water din’t review almost without deposit due star awful experience compact dilapidated barely family deluxe top expect luxury credit week mind checkin paris rome geneva iceland last minute anything train mention unsanitary expensive incredible c grateful enjoy towel length climb suitcase alone none manhattan noise supply help decrease convenient stop 9am grocery fire station nearby major unless constantly crash busy priceworthy colse life noticeable brekfastbuffe personnel book shuttle airport pre-authorized understand never advance agent language barrier difficult super 2pm o high center spot name away able rest now direct bonus company ball prefect play beyond gentleman behind uber hot heavy backpack kind gesture important action hit try edison hear siren homeless across teenage cruise primary reason intersection police engine dept advertise friday internet thursday tax know screen title expand care basically intense obviously middle swear wide reservation couple ago specifically 5th 30am poor information speak business prime timesquare decent say single paper ac sad state summer sufficient please aware newyork sarath especially end remember columbian asian upgrade throughout rude accommodate accord address amaze assure bagel bite blanket blow boil bottle buy break bring bud bug build cap channel choose clack clothe complain concern con consist contact convenience cookie cord cover curtain date deal deceive decoration degree dine disappoint disgust donut earplug easy egg employee exasperate explain facility fall film friend fulfill game gasp guarantee head hold honk honor hope horn house inch include inform keep kid knee lady large limit linen live lose mail material mean meet month mount muffin occasion offer okay option outdate overlook pass pastry pillow pipe plug point prepay prepare privilege promise pro purpose quarter quote receive regard repair respond restaurant return reviewer save screw search 2 seem sell serve shoot site 6 socket soundproof stain standard stink stent suggestion sum surprise table tear tell thank think tourist travel turn unite update wear window wonder work world worry
text1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
text2 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 1 1 1 1 1 1 2 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
text3 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 3 0 2 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
text4 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
text5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 4 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 2 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

St-James

st_james.dfm <- dfm(st_james_reviews.tok)
head(st_james.dfm, 5) %>% kable(caption = "DFM - St-James") %>% kable_styling(bootstrap_options = c("striped", "hover"), position = "center")
DFM - St-James
doc_id partner new york end february year time hotel st james perfect location minute walk square nice quiet lovely small boutique like old decor still clean remember room double bed bedside tall mirror chest tv table little cupboard rail iron board safe top extra storage handy bathroom step toilet bath shower head sink basin decent window another apartment sort particularly opinion cheap cheerful us sleep wash change nearly day everyday helpful especially transportation home one receptionist mini bus firm make sure unsure definitely stay just note restaurant food bakery cafe next door fresh hot also irish pub great good value less trouble -either turn radiator cold night staff though open fantastic theater district spot midtown central manhattan everything pretty much walkable super friendly right start reason give overall excellent people expect affordable reflect comfortable historical charm pre-war prime see soho greenwich village chelsea bryant park grand rockefeller plaza nothing fancy lot base city ask joey front desk awesome back future southern hospitality absolutely various previously posh mid range say return décor etc warm reception typical yorker mine knowledge sit listen long mcdonalds o street starbucks across road deli breakfast delicious dinner tea bonus charge resort coffee due ill health poor sleeper proper addict want wake plastic kettle plug extension cable every morning recommend everywhere oh wee useless information tom scene big ying-yang either get cheery person monotone kind jerk area centric block five hello heater call member last water um waste anymore cause leave luggage place convenient nyc star quick fill order counter pay till two different price wise bad mattress anyway metal pipe beyond touch noise level dang ago dirty full upset whatever nightmare rude unfriendly around really rough dangerous far appreciably prior check-in unit busy accommodate book comfortably trip complain conversation request christmas lick paint honest somewhere connelys even middle pleasant near sq rock huge king unhelpful cockroach guy horror cup apology desire view nobody nonchalant furniture work stuff ready please tell help hear sorry madam know awhile can year’s eve provide service promise apologize something anyone never review case need explore cozy access happy lug spacious ny surprise mother daughter wonderful character look surprisingly wait come anywhere else except odd siren period art deco use refurb desperate althought probably rise hop way december four couple ten radio music hall centre sadly corrider oppoisite opposite frame padlock large uncomfortable days- spend do.it midtown- although comfy nearby lucky enough go break read faultless away 42nd station short plenty high line liberty ferry avoid cost staten island free hour harlem 5th recently form xmas visit past similar premier inn style accomodation marble tin within local ammneities must special attantion concierge experience welcome establishment european type close entrance fairly ac close-by stay.basic clean.we literally purpose choose real plan anything choice transition l e light instead ole yellow fluorescents temp noisy rear side brilliant broadway empire state drink suit everyone round towel yuk downside barely keep nasty travel company eventually key ideal luxury elsewhere general actual modern downfall floor dodge loo careful burn however bar au lait fault famous friday 29th- wed 4th dec yes basic rest appreciate essential boost income hardworking find putting envelope ahead scottish choc shortbread put accurate first secondly maker alarm clock plus incredibly customer course part early incredible chain thanksgiving throughout admit throw distance parade think wherever apprehensive actually tiny low ridiculous mega fine spotless powerful temperature quite november july 3rd delay 8th expedia grumpy problem spotlessly cant late check important chill six brillant corner diamond daily creaky soon possible x heat loud repeatedly take certain point s reply answer extremely slow leak fire detector someone husband courteous unfortunately forget name checkout true single unlock store proximity ever realistic currently control worlde main jersey brooklyn boy addition roon exactly wi-fi worry 7am flight without hesitation several cruise complaint size constantly tough space- franchise always money beat direction fountain dollar pizza forward personal many love behind exstreamly witty thank memorable max macy’s madison garden 7th avenue north dump albeit crash criticism arrival air con zero constant three quaint superb downtown lunch fab professional housekeeping since site week run-down seedy whole weird bedbug now totally paranoid bring june world pride reasonable lobby team standard feel 10th mile train refrigerator ice machine deli’s outside shabby plant machinery aircon wall wardrobe ppl deep allow hang nicely.generally tatty loose wifi vintage center ave bank understandably 2nd notice eat easy fast anniversary distant perfectly traffic gym workout abound apple add adjust adore allocate amaze amenity appear arrange arrive assign attraction bagel bag bang bite box brew build bulb cabinet carpet ceil celebration chair clothe compare consider contact contain cramp crow crowd damage date decorate depend disappoint draw elevator enjoy enter exhaust expectation face facility fall fashion faucet feature fee female film fix freeze frighten frill frustrate frustration girl greet guest hair hank happen hike hiss horn include instruction kick lack lady lie lamp landmark leap leg let lift limit live locate lock locker maid man meal mean meet mention metre min modernise move muffle negative numb option overhear overlook pastry photo pick picture plane plumb positive prefer present run ring rate reach recoil regard remind resemble reservation reviewer seat secure seem sell serve shop show sightsee situate smell snow socket soundproof stair stone theatre thing 3 tick tip tire tramp try unite update wear wire word
text1 2 2 2 1 1 1 4 6 1 1 1 1 1 1 1 2 1 1 1 1 2 1 1 1 2 1 2 1 1 1 1 1 1 1 2 1 1 1 2 1 1 1 1 1 1 3 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 2 1 1 1 2 2 2 2 2 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
text2 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
text3 0 0 0 0 0 0 1 0 0 0 1 3 0 1 1 0 0 0 1 0 0 1 0 0 1 0 3 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 1 3 1 1 1 3 1 2 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
text4 0 0 0 0 0 0 0 2 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
text5 0 2 1 1 0 0 2 11 2 2 1 1 1 1 1 0 0 1 0 1 0 1 0 0 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 2 0 0 0 1 0 0 0 0 3 0 0 2 1 3 0 0 1 0 0 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 2 1 1 1 4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Four Seasons

four_seasons.dfm <- dfm(four_seasons_reviews.tok)
head(four_seasons.dfm, 5) %>% kable(caption = "DFM - Four Seasons") %>% kable_styling(bootstrap_options = c("striped", "hover"), position = "center")
DFM - Four Seasons
doc_id pre-covid non-consecutive room immaculate service staff fantastic conference call internet front-of-house available bid test free first see sufficient -they also offer premium much additional cost however connection fast exceptional eye detail personal upon repeat visit concierge care remember name luggage storage like great comfortable stay four hotel perfect location manhattan easy walk various subway taxi always nearby clean spacious star try get noise though roomservice fine swift excellent breakfast cut wolfgang puck lunch diner friendly notice big-eye tuna tartare exactly just tasty one sister restaurant mbs singapore definitely recommend downtown luxury due little electric mirror bathroom etc super close memorial steakhouse two wtc wall street relatively overall look feel modern design decent size oculus view still put bath big part really bright temperature control space abundance complaint bed soft depression center mattress lobby food particularly outstanding activity area good choice december nice front desk absolutely warm attentive everyone highly enough us bride groom unfortunately- celebrate 50th birthday new york turn expect previous comment quality attention par impressive bottle champagne arrival tray happy plate immediately tip late meet friend since card speechless even give gift property beautiful another window delicious blond girl kind despite terrible away member sierra anytime go show pool trip city memorable superb steam relax kutura reception ever helpful thank calm within energetic team attitude instead typical special daughter break wife incredible style presentation flawless around town safe home night pleasant airport transfer flight car impeccable every interaction wonderful housekeeping treasure small door bell bar point uptown next time heart five year stylish luxurious spa although jacuzzi access distance key lovely dream getaway unbelievable believe checkout large professional impeccably unobtrusive efficient afternoon snack saltless pretty tasteless toast nothing coffee something upscale weak slow glacial ask long able order overpriced near world trade class way truly minute quiet brooklyn bridge recently work high-end nyc entire actually add cloth cord keeper hesitate address iconic faultless moment fs ease extra mile help katora manager eager place day convenient many different tourist resturants rate everything guest guestroom spotless five-star experience several frequent ritz carlton disappointment live maybe business back thursday find note private event alternative concern can use lucky honeymoon trouble cloud cake thoughtful touristing stone’s throw plenty unfortunately news write review caribbean seem almost slick fu k 5-star let tv ipad lobster ramen starchy mushy never weirdly cart meal hallway morning leave combination phenomenal make miss save usually union square park doorman may hard attendant prompt right want check hot water start shower wait ten bathtub gorgeous uncomfortable 40th end august staycation unfortunate severe allergy twice story short ambulance didnt human say hudson suite fabulous huge in-room bedroom closet nicely master tub throughout early week odd else west 47th 8th avenue hospitality love worldwide single person house whole family 19th floor craziness ny dinner steak husband touch important warmth awesome forward soon common brand soho eventually life usual cold air set low centigrades affordable future man seamless corner high level colour clear focus priority magnificent unique favorite beyond prefer vibe tribeca unparalleled return anyone architecture gem architect robert a.m stern contemporary elegance skyline interior sleek oh god come true light among river beekman barclay bumper traffic wonder ice old backseat grateful raul asset company straight grab sure incredibly hello open promptly extremely well-appointed display behind blackout completely multiple real quite quick vegetarian nish nush rude picture regular trust recieved décor heavenly gymn full culinary bff familiar pleasantly st know rather accommodate check-in upgrade worthy mention lorenzo villoresi amenities-wise 24-hours gym weight exercise cross term conveniently drawback travel lot need hope karin treat ambiance imani premier king trade-awesome guess normal totally mother’s present agent brett addition nasha speak passion compliment memory last mom lifetime accommodation amaze amend amenity appoint appointment arrive assist associate eat attend attraction base become bike bite blow block book bring build cafe charge chill choose color compare condition confirm credit crow curtain customer decide delay delight deliver dine disappoint distinguish egg employee encounter enjoy escort excite expectation face facility faint fire freeze glass greet greeting grill hallmark happen hour ignite impress include invite issue kid landmark layout learn link locate lover manage mix month noodle numb occupy okay operation option organise overcook overlook pick power preference provide raise recommendation reflect reheat resemble rise ruin sit scheme season security sell send serve server sheet shock sight sleep slipper smile soak spend standard stock stope stop stun suburb surprise swim take tell thing toiletry towel trainer traveler treadmill tuck waiter wake wed welcome
text1 1 1 1 1 4 4 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 3 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
text2 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
text3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 3 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
text4 0 0 4 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 2 2 0 0 0 1 1 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
text5 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Peninsula

peninsula.dfm <- dfm(peninsula_reviews.tok)
head(peninsula.dfm, 5) %>% kable(caption = "DFM - Peninsula") %>% kable_styling(bootstrap_options = c("striped", "hover"), position = "center")
DFM - Peninsula
doc_id february definitely one new york star favourite good size clean lovely staff really helpful location fantastic everywhere easy walk return something news legendary like peninsula nyc savoy london home fact unfathomable time even may frequent far often one’s neighborhood difficult think many around regular symbolic place political cultural world-altering rudy giuliani hear us still familiar soccer superstar george lucky enough weekend end lpeninsula trip oxford vancouver september year commemoration everything ie truly wonderful 5th ave 55th singularity right center midtown prime position important roosevelt centre also fine bar lounge terrific service food roof top patio great across hotel just wonder pool street love almost anywhere drop hat high peninsula’s favorite life five world pet policy stay buddhist dog riley p enthusiastic traveller bon vivant riley’s kind bucket list now eagerly s first dream simply long team immediately excellence breakfast spa incredible sense appartenence since someone another name caroline director front desk thank samir remember forever smile enthusiasm big ny close central park rockefeller square away impeccable bad somewhat spacious match hong kong shanghai luxurious price main factor come 2-3 work beautiful super dreamy every member extremely room late check 2pm arrival gym equipment constantly hand sanitiser tiny etc pleasant current coronavirus nice relatively feel hustle bustle outside comfortable awhile much sqaure go beyond make sure need space restaurant 1st 2nd floor superb bottom smooth swift meticulous dirt dust aggravate disgust yet customer sublime everyone hard get friendly property quite spectacular cousin beverly base family business apple two solid currently tree manhattan atmospheric four country mile selective product successful although eventually properly clement ambiance outstanding genuinely gotham forward rooftop salon especially chalet fitness strong want part investment revamp compete york’s can beat always -star help bathroom experience avoid marathon busy plenty action try old degree weather wife prosecco nicely version worth admission bring continuously professional waitstaff photo ever sweet put moslem carpet water hose nevertheless concierge housekeeping appreciate thankfull special fabian manager future departure reception delightful delicious wine wait genuine friendliness scrub massage perfect course ideal suite ample storage luggage site elegance extraordinary nothing thanksgiving treatment moment christmas decoration festive brunch in-house egg white frittata fruit bowl along meal quick dip appointment therapist skilful day everyday beautifully chocolate fondue yesterday drink excellent decor entrance last call find sit available small table inside person plus taxes.paying expectation boat restroom area full dirty situation december exception exterior trademark bellman bellmen welcome care interior tastefully next stop shuma avenue expect linen class fluffy oscar de la renta bath tub shower mention view see cold november night keep warm back highly recommend sheer opulence classic ning choose pradeep fix issue ago iconic pay attentive polite however simple soul coffee maker ready early happen little happy city building wall money possible gift grateful budget elsewhere rest entertainment discretionary income though opulent travel lot know dimond leave near st patrick cathedral comeback three pennisula celebrate 30th anniversary week read series tripadvisor disrepair become advance worry aware receive fresh wonderfully consistent please note nightly start upon deal perfectly morning sauna swim chill jetlag elegantly large oversized incredibly absolutely bill astronomical free per charge downstairs frequently visit convenient boutique y offer scale couple overall notch balance effortlessly deluxe king technology able understand functionable without discount price-point value voice plan style afternoon tea lobby artwork display sadly town happily disappoint quiet bed enjoyable door usual standard efficient impression grande luxe epitome pure luxury quality level personalisation janset stephanie opportunity necessary aback local chinese 6th natural light whatsoever unfortunately deferential dinner people ahead chain u.n advise disruptive elevator availability- security point tsa horrible outlier recent check-in process uncomfortable bother neck rare aside loud night’s sleep thing disappointment lunch okay expensive mattress shockingly seriously overpriced daughter must within lively ridiculous wish tiffanys queen classically doorman besides else hallway musty smell usb use refresh traditional prefer modern curtain bangkok step hall enough.yes yes tax way mini say side personnel thankless job overly conscientious 5-th jonathan june bright management learn junior executive superior sofa period except example gel give shampoo take stack brown change tissue school accommodation wife’s birthday bottle champagne thru case magnificent impressive stairway beneath massive chandelier speed pace presentation total provide gourmet shame surround plaza death deck sundown wrong apart slightly unthoughtful deliver hesitate miah friend’s show swedish locker steamroom rarity individual privacy men’s oasis believe asia heart paris chance posh-lifestyle true hospitality respond advisedly kettle headshower tv automatically half hour repair traffic generally chaotic valet surprisingly bell exceptionally low indoor dine sundeck herb certain charm poor average terrible hvac premium mediocre promise incomparable touch maybe line rave add separate animal multiple real concrete jungle negative whenever albeit short upgrade difference art entertain hope continue break hyatt different opt key include delicate attention cake son’s zoo activity easter unfortunate glitch children’s 11.30am apparently till tell seemingly drawer extension open velcro-ed rather odd unattractive brooklyn keycard id abandon accommodate accomplish accustom ache advertise aesthetic all-rounder allow amaze amenity answer appoint approach arrive ask aspect assure attach attendant await bite blanket block book boy build cabinet cater chair charger child circumstance clothe cocktail colleague complaint concern confirm confuse contact continent county crank crowd cup date decide decorate department dessert detail disjoint spin-dry effort email employee enjoy enlighten ensure enter escort establishment event exceed excite explain facility fall fashion fawn feature figure finish flake float friend girl greet group guest haunt head heat heater hem hill hinge igloo impress intend interact isolate item kid kill lack lady lay lead less lift live locate look maintain manage mean meet mind min minute move notice numb occasion occur option overbook overcharge overlook owner pamper paper pillowcase play polish positive post pray prepare purpose question run rate reach recommendation remind reopen request review robe sail sale save season seat 2 seem serve set share shock shop signal situate slipper snack snicker snow socket spend spruce stretch stun suggest surprise switch teenager term 3 tire toiletry towel train trainer treat understate unravel update vary venue waiter wake wind wipe wire yorker
text1 1 3 1 2 2 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
text2 0 0 3 0 0 1 0 6 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 2 7 5 3 1 1 3 1 2 2 1 1 1 1 2 1 1 1 1 2 1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 2 1 1 1 1 2 2 2 2 1 2 1 1 1 1 1 1 1 2 1 3 1 1 2 1 2 4 1 1 1 4 2 1 3 1 1 1 1 1 1 1 2 1 2 2 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 2 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0
text3 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 2 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
text4 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
text5 0 0 1 0 0 0 1 0 0 2 0 3 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 2 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

TF-IDF

The TF-IDF analysis enables to invert the frequencies. In this way, the frequency of highly frequent terms that bring little information will be reduced to 0. On the other hand, the frequencies of document-specific terms will be increased. This will allow us to better understand what are the terms that are specific to each document.

Econo lodge

econo.tfidf <- dfm_tfidf(econo.dfm)
head(econo.tfidf, 5) %>% kable(caption = "TF-IDF - Econo lodge") %>% kable_styling(bootstrap_options = c("striped", "hover"), position = "center")
TF-IDF - Econo lodge
doc_id location square still quiet hotel friendly staff clean breakfast starbucks dunkin etc also around corner visit next time new york absolutely stay there- straight back find another smelly dirty place small room old furniture ever box anywhere even take bath tub dingy dusty run definitely timey smell carpet although coffee space charge resort fee lot trip block come sure check elevator extend past 6th floor 7th clerk health artificial cardiac bypass hypertension management change additionally day order ice machine entire sofa bed thermostat set temperature emergency door outside alarm open frigid air legal issue electrical abound serious safety message manager one call desk different nothing econolodge perfect overnight safe sleep good value close theater district tiny use overall pleasant central service great need make clear debt card policy amount equal total city just happy always coffie lobby quaint comfortable ideal everything want see price unbeatable granddaughter wish post photo move chair front get foot walk side crawl thin complimentary ear necessary creepy man every night continental plus distance gershwin theatre eat housekeeping maintenance quickly nice short long bus niagara sight adequate free honest real helpful within yes mother fine spend explore many yet ave street complaint quite warm way regulate research really beat plan big apple gross slow curt rust hard hair fresh road literally thing worth accommodation two leave luggage little loud saturday attentive functional basic description shame plenty money usd extra per queen instead regular double american width narrow fact hotwire expedia ask refund give affordable cozy comfy part though proximity maybe min fantastic right heart activity arrive early pm check-in additional person us store bag nickel diming opinion fairly area sit enough start something young daughter 20k subway 5min prior type bad unable restroom freshen size condition dark relax closet hang wonderful econo lodge usually choice combination cash feel like customer look forward low budget fault approx max centre noisy useful morning average bread toaster selection provide 24hr tea late afternoon pretty english bathroom excellent arrival wi-fi access speed cancellation property 1am desperately bank holiday ny full cost three let moment sound cheap extremely less since nyc steep discount pay go probably waayyy people hardly near however much first conditioner cold reception attend already watch show 3am sleepy wait hour defrost temporary fix transfer wall shower pressure typical minimal 8th avenue conscious kindness taste toast jam cheese cereal cupcake easily mini bar daren’t answer seriously excellant tidy buffet fruit tip honestly fabulous environment office member food delicious love hopefully tight pleasent cheerful availability storage convient fir tv appreciate available recommend juice decaff typically contain usb tablet can wifi stream sterling dollar exchange rate certainly personal bibi water din’t review almost without deposit due star awful experience compact dilapidated barely family deluxe top expect luxury credit week mind checkin paris rome geneva iceland last minute anything train mention unsanitary expensive incredible c grateful enjoy towel length climb suitcase alone none manhattan noise supply help decrease convenient stop 9am grocery fire station nearby major unless constantly crash busy priceworthy colse life noticeable brekfastbuffe personnel book shuttle airport pre-authorized understand never advance agent language barrier difficult super 2pm o high center spot name away able rest now direct bonus company ball prefect play beyond gentleman behind uber hot heavy backpack kind gesture important action hit try edison hear siren homeless across teenage cruise primary reason intersection police engine dept advertise friday internet thursday tax know screen title expand care basically intense obviously middle swear wide reservation couple ago specifically 5th 30am poor information speak business prime timesquare decent say single paper ac sad state summer sufficient please aware newyork sarath especially end remember columbian asian upgrade throughout rude accommodate accord address amaze assure bagel bite blanket blow boil bottle buy break bring bud bug build cap channel choose clack clothe complain concern con consist contact convenience cookie cord cover curtain date deal deceive decoration degree dine disappoint disgust donut earplug easy egg employee exasperate explain facility fall film friend fulfill game gasp guarantee head hold honk honor hope horn house inch include inform keep kid knee lady large limit linen live lose mail material mean meet month mount muffin occasion offer okay option outdate overlook pass pastry pillow pipe plug point prepay prepare privilege promise pro purpose quarter quote receive regard repair respond restaurant return reviewer save screw search 2 seem sell serve shoot site 6 socket soundproof stain standard stink stent suggestion sum surprise table tear tell thank think tourist travel turn unite update wear window wonder work world worry
text1 0.2676062 0.49485 1.221849 1.39794 0.2076083 0.7447275 0.5850267 0.39794 0.3767507 1.69897 1.39794 1.39794 0.9208188 0.853872 1.39794 1.39794 1 0.6375175 1.221849 1.221849 0.00000 0.0000000 0.00000 0.00000 0.0000000 0 0.000000 0.00000 0.00000 0.0000000 0.00000 0.1426675 0.0000000 0.000000 0.00000 0.00000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.000000 0.00000 0.00000 0.000000 0.00000 0 0.00000 0 0.00000 0.00000 0 0.000000 0.00000 0 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.0000000 0 0.00000 0.000000 0.00000 0 0 0 0 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.6575773 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.09691 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0.00000 0 0 0 0.00000 0.00000 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0.00000 0 0.00000 0 0 0 0 0.00000 0 0 0.00000 1.69897 0 0 0 0 0.00000 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.39794 0.00000 0 0 0.00000 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0.00000 0 1.221849 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0.00000 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0.000000 0 0 0 0
text2 0.0000000 0.00000 0.000000 0.00000 0.4152166 0.0000000 0.0000000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.0000000 0.000000 0.00000 0.00000 0 0.0000000 0.000000 0.000000 1.69897 0.6375175 1.69897 1.69897 0.7447275 1 1.221849 1.69897 3.39794 0.5850267 0.30103 0.1426675 0.9208188 1.221849 1.09691 0.00000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.000000 0.00000 0.00000 0.000000 0.00000 0 0.00000 0 0.00000 0.00000 0 0.000000 0.00000 0 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.0000000 0 0.00000 0.000000 0.00000 0 0 0 0 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.6575773 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.9208188 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5850267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0.00000 0 0 0 0.00000 0.00000 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0.00000 0 0.00000 0 0 0 0 0.00000 0 0 1.69897 0.00000 0 0 0 0 0.00000 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0.00000 0 0 0.00000 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0.00000 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.39794 0.00000 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 1.221849 0 0 0 0
text3 0.0000000 0.49485 0.000000 0.00000 0.0000000 0.0000000 0.0000000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.0000000 0.000000 0.00000 0.00000 0 0.3187588 0.000000 0.000000 0.00000 0.3187588 0.00000 0.00000 0.0000000 0 0.000000 0.00000 0.00000 0.0000000 0.90309 0.0000000 1.8416375 0.000000 0.00000 1.69897 1.39794 0.7447275 1.09691 1.39794 1.69897 1.69897 1.69897 1.221849 1.221849 1.69897 1.39794 1.221849 0.00000 0 0.00000 0 0.00000 0.00000 0 0.000000 0.00000 0 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.0000000 0 0.00000 0.000000 0.00000 0 0 0 0 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0.00000 0 0 0 0.00000 0.00000 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0.00000 0 1.69897 0 0 0 0 0.00000 0 0 0.00000 0.00000 0 0 0 0 0.00000 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0.00000 0 0 0.00000 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0.00000 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0.00000 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0.000000 0 0 0 0
text4 0.0000000 0.49485 0.000000 0.00000 0.0000000 0.0000000 0.0000000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.0000000 0.000000 0.00000 0.00000 0 0.3187588 0.000000 0.000000 0.00000 0.3187588 0.00000 0.00000 0.7447275 0 0.000000 0.00000 0.00000 0.0000000 0.30103 0.1426675 0.0000000 0.000000 0.00000 0.00000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.000000 0.00000 0.00000 0.000000 1.39794 1 1.39794 1 1.69897 1.39794 1 0.853872 1.39794 1 1.69897 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.0000000 0 0.00000 0.000000 0.00000 0 0 0 0 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.853872 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.39794 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0.00000 0 0 0 0.00000 0.00000 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0.00000 0 0.00000 0 0 0 0 0.00000 0 0 0.00000 0.00000 0 0 0 0 0.00000 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0.00000 0 0 0.00000 0 0 1.09691 0 0 0 0 0 0 0 0 0 0 0.00000 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0.00000 0 0 0 0 0 0 0 0 0 0 0 1.69897 0 0 0.000000 0 0 0 0
text5 0.0000000 0.00000 0.000000 0.00000 0.0000000 0.0000000 0.0000000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.0000000 0.000000 0.00000 0.00000 1 0.0000000 0.000000 0.000000 0.00000 0.3187588 0.00000 0.00000 0.0000000 0 0.000000 0.00000 0.00000 0.0000000 0.00000 0.5706700 0.0000000 0.000000 1.09691 0.00000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.000000 0.00000 0.00000 0.000000 0.00000 0 0.00000 0 0.00000 0.00000 0 0.000000 0.00000 0 0.00000 0.7447275 3.39794 1.39794 1.69897 1.39794 1.09691 1.39794 2.79588 1.69897 1.69897 1.69897 1.69897 1.69897 1.39794 0.9208188 1.69897 0.79588 1.69897 1.69897 1.69897 1.69897 1.69897 0.4436975 1.69897 1.39794 1.39794 1.69897 1.221849 1.39794 1.69897 1.09691 1.69897 1.39794 1.69897 2.443697 1.69897 1.69897 1.69897 1.69897 1.69897 1.221849 0.6197888 1 0.79588 1.221849 1.39794 0 0 0 0 0 0.3372422 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.19382 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0 0 0 0 1.221849 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5850267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.69897 0 0 0 0 0 1.69897 0 0 0 3.39794 1.69897 0 0 0 0 0 0 0 0 0 1.69897 0 0 0 0 0 1.69897 0 0.00000 0 0 0 0 1.69897 0 0 0.00000 0.00000 0 0 0 0 1.69897 1.69897 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 3.39794 0 0 1.69897 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 1.69897 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.39794 0 0 0 1.09691 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 1.69897 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0.000000 0 0 0 0

St-James

st_james.tfidf <- dfm_tfidf(st_james.dfm)
head(st_james.tfidf, 5) %>% kable(caption = "TF-IDF - St-James") %>% kable_styling(bootstrap_options = c("striped", "hover"), position = "center")
TF-IDF - St-James
doc_id partner new york end february year time hotel st james perfect location minute walk square nice quiet lovely small boutique like old decor still clean remember room double bed bedside tall mirror chest tv table little cupboard rail iron board safe top extra storage handy bathroom step toilet bath shower head sink basin decent window another apartment sort particularly opinion cheap cheerful us sleep wash change nearly day everyday helpful especially transportation home one receptionist mini bus firm make sure unsure definitely stay just note restaurant food bakery cafe next door fresh hot also irish pub great good value less trouble -either turn radiator cold night staff though open fantastic theater district spot midtown central manhattan everything pretty much walkable super friendly right start reason give overall excellent people expect affordable reflect comfortable historical charm pre-war prime see soho greenwich village chelsea bryant park grand rockefeller plaza nothing fancy lot base city ask joey front desk awesome back future southern hospitality absolutely various previously posh mid range say return décor etc warm reception typical yorker mine knowledge sit listen long mcdonalds o street starbucks across road deli breakfast delicious dinner tea bonus charge resort coffee due ill health poor sleeper proper addict want wake plastic kettle plug extension cable every morning recommend everywhere oh wee useless information tom scene big ying-yang either get cheery person monotone kind jerk area centric block five hello heater call member last water um waste anymore cause leave luggage place convenient nyc star quick fill order counter pay till two different price wise bad mattress anyway metal pipe beyond touch noise level dang ago dirty full upset whatever nightmare rude unfriendly around really rough dangerous far appreciably prior check-in unit busy accommodate book comfortably trip complain conversation request christmas lick paint honest somewhere connelys even middle pleasant near sq rock huge king unhelpful cockroach guy horror cup apology desire view nobody nonchalant furniture work stuff ready please tell help hear sorry madam know awhile can year’s eve provide service promise apologize something anyone never review case need explore cozy access happy lug spacious ny surprise mother daughter wonderful character look surprisingly wait come anywhere else except odd siren period art deco use refurb desperate althought probably rise hop way december four couple ten radio music hall centre sadly corrider oppoisite opposite frame padlock large uncomfortable days- spend do.it midtown- although comfy nearby lucky enough go break read faultless away 42nd station short plenty high line liberty ferry avoid cost staten island free hour harlem 5th recently form xmas visit past similar premier inn style accomodation marble tin within local ammneities must special attantion concierge experience welcome establishment european type close entrance fairly ac close-by stay.basic clean.we literally purpose choose real plan anything choice transition l e light instead ole yellow fluorescents temp noisy rear side brilliant broadway empire state drink suit everyone round towel yuk downside barely keep nasty travel company eventually key ideal luxury elsewhere general actual modern downfall floor dodge loo careful burn however bar au lait fault famous friday 29th- wed 4th dec yes basic rest appreciate essential boost income hardworking find putting envelope ahead scottish choc shortbread put accurate first secondly maker alarm clock plus incredibly customer course part early incredible chain thanksgiving throughout admit throw distance parade think wherever apprehensive actually tiny low ridiculous mega fine spotless powerful temperature quite november july 3rd delay 8th expedia grumpy problem spotlessly cant late check important chill six brillant corner diamond daily creaky soon possible x heat loud repeatedly take certain point s reply answer extremely slow leak fire detector someone husband courteous unfortunately forget name checkout true single unlock store proximity ever realistic currently control worlde main jersey brooklyn boy addition roon exactly wi-fi worry 7am flight without hesitation several cruise complaint size constantly tough space- franchise always money beat direction fountain dollar pizza forward personal many love behind exstreamly witty thank memorable max macy’s madison garden 7th avenue north dump albeit crash criticism arrival air con zero constant three quaint superb downtown lunch fab professional housekeeping since site week run-down seedy whole weird bedbug now totally paranoid bring june world pride reasonable lobby team standard feel 10th mile train refrigerator ice machine deli’s outside shabby plant machinery aircon wall wardrobe ppl deep allow hang nicely.generally tatty loose wifi vintage center ave bank understandably 2nd notice eat easy fast anniversary distant perfectly traffic gym workout abound apple add adjust adore allocate amaze amenity appear arrange arrive assign attraction bagel bag bang bite box brew build bulb cabinet carpet ceil celebration chair clothe compare consider contact contain cramp crow crowd damage date decorate depend disappoint draw elevator enjoy enter exhaust expectation face facility fall fashion faucet feature fee female film fix freeze frighten frill frustrate frustration girl greet guest hair hank happen hike hiss horn include instruction kick lack lady lie lamp landmark leap leg let lift limit live locate lock locker maid man meal mean meet mention metre min modernise move muffle negative numb option overhear overlook pastry photo pick picture plane plumb positive prefer present run ring rate reach recoil regard remind resemble reservation reviewer seat secure seem sell serve shop show sightsee situate smell snow socket soundproof stair stone theatre thing 3 tick tip tire tramp try unite update wear wire word
text1 2.79588 1.170053 1.2395775 0.9208188 1.69897 1.221849 0.6699643 0.5171169 0.5850267 0.5850267 0.6575773 0.2218487 0.79588 0.5228787 0.236572 1.4894550 0.7447275 0.9208188 0.6197888 1.39794 1.707744 0.6197888 1.221849 1.39794 0.4152166 1.69897 0.2853350 1.39794 0.4202164 1.221849 1.69897 1.69897 1.69897 1.39794 3.39794 0.79588 1.69897 1.69897 3.39794 1.69897 1.39794 1.39794 1.39794 1.69897 1.221849 1.972732 2.443697 1.39794 1.221849 0.853872 1.39794 1.39794 1.69897 1.221849 1 1.09691 1.69897 1.39794 1.69897 1.69897 1.09691 1.39794 1.315155 0.6197888 1.39794 1.221849 1.69897 0.4685211 1.221849 0.552842 1.09691 1.69897 0.9208188 0.5850267 2.443697 1.69897 1.39794 1.69897 0.69897 1.221849 1.69897 0.853872 0.4152166 0.4685211 1.69897 0.9208188 1.707744 3.39794 2.443697 1.170053 1.045757 1.69897 1 0.79588 1 1 0.3565473 0.00000 0.000000 0 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.0000000 0.00000 0 0.000000 0.00000 0.00000 0.00000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.000000 0.00000 0 0.000000 0.0000000 0.00000 0.00000 0 0.000000 0.00000 0.000000 0.000000 0.00000 0.00000 0.000000 0.00000 0 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0 0.0000000 0.000000 0 0.0000000 0.0000000 0.0000000 0.0000000 0.000000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0 0.00000 0.000000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.000000 0.000000 0.000000 0.0000000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.6575773 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0 0.00000 0.000000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.239577 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.69897 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.39794 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.853872 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.221849 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 1 0.000000 0 0 0 0 0 0.00000 0 0 0.00000 0 0 0 0 0 0 0 0 1.69897 1.39794 0 0 0 1.69897 0 0.00000 0 0 0.0000000 0 0 0 1.69897 0.000000 0 0 0 0 0 1 0 1 0 0 0.00000 0 0.00000 0 0 0 0.00000 0 0 0 0 0 0 0.00000 0 0 0.00000 0 0 0 0 0.00000 0 0 1.69897 0 0 0 0 0 0 0 0 0 0 0 0 1.39794 0 0 0.00000 0 0 0 0 0 0 1.69897 0 0 1.39794 1.69897 0 1.69897 0 0 0 0 0 0 0.00000 1.69897 0.00000 0 0 1.69897 0 0 0 0 0 0 0 0.00000 2.19382 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0
text2 0.00000 0.000000 0.0000000 0.0000000 0.00000 0.000000 0.1674911 0.0861861 0.0000000 0.0000000 0.0000000 0.2218487 0.79588 0.5228787 0.236572 0.7447275 0.0000000 0.0000000 0.0000000 0.00000 0.000000 0.0000000 0.000000 0.00000 0.0000000 0.00000 0.0000000 0.00000 0.0000000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.79588 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.000000 0.000000 0.00000 0.000000 0.000000 0.00000 0.00000 0.00000 0.000000 0 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.0000000 0.00000 0.000000 0.00000 0.0000000 0.000000 0.000000 0.00000 0.00000 0.0000000 0.0000000 0.000000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.000000 0.0000000 0.0000000 0.00000 0.0000000 0.000000 0.00000 0.000000 0.000000 0.000000 0.00000 0 0.00000 0 0 0.3565473 0.39794 1.221849 0 1.69897 1.69897 1.221849 1.39794 1.09691 0.39794 0.2839967 1.39794 1 0.000000 0.00000 0.00000 0.00000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.000000 0.00000 0 0.000000 0.0000000 0.00000 0.00000 0 0.000000 0.00000 0.000000 0.000000 0.00000 0.00000 0.000000 0.00000 0 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0 0.0000000 0.000000 0 0.0000000 0.0000000 0.0000000 0.0000000 0.000000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0 0.00000 0.000000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.000000 0.000000 0.000000 0.0000000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0 0.00000 0.000000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.221849 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0.000000 0 0 0 0 0 0.00000 0 0 0.69897 0 0 0 0 0 0 0 0 0.00000 0.00000 0 0 0 0.00000 0 0.00000 0 0 0.6197888 0 0 0 0.00000 0.000000 0 0 0 0 0 0 0 0 0 0 0.00000 0 0.00000 0 0 0 0.00000 0 0 0 0 0 0 0.00000 0 0 1.69897 0 0 0 0 0.00000 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0.00000 0 0 0 0 0 0 0.00000 0 0 0.00000 0.00000 0 0.00000 0 0 0 0 0 0 0.00000 0.00000 0.00000 0 0 0.00000 0 0 0 0 0 0 0 0.00000 0.00000 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0
text3 0.00000 0.000000 0.0000000 0.0000000 0.00000 0.000000 0.1674911 0.0000000 0.0000000 0.0000000 0.6575773 0.6655462 0.00000 0.5228787 0.236572 0.0000000 0.0000000 0.0000000 0.6197888 0.00000 0.000000 0.6197888 0.000000 0.00000 0.2076083 0.00000 0.4280025 0.00000 0.0000000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.79588 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.000000 1.221849 0.00000 0.000000 0.000000 0.00000 0.00000 0.00000 0.000000 0 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.0000000 0.00000 0.000000 0.00000 0.0000000 0.000000 0.000000 0.00000 0.00000 0.9208188 0.0000000 0.000000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.000000 0.2076083 0.0000000 0.00000 0.0000000 0.000000 0.00000 0.000000 0.000000 0.000000 0.00000 0 0.00000 0 0 0.3565473 0.00000 0.000000 0 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.2839967 0.00000 0 1.221849 1.39794 1.69897 1.69897 1.39794 2.7624563 1.69897 0.69897 1.09691 1.859366 1.39794 2 0.552842 0.6197888 1.39794 1.69897 1 2.443697 2.19382 1.221849 0.853872 1.69897 1.69897 0.552842 1.69897 1 1.69897 1.69897 1.09691 1.69897 1.69897 1.69897 1.69897 1.69897 2.19382 1.09691 1.221849 1.69897 1.09691 1 0.9208188 1.221849 1 0.0000000 0.0000000 0.0000000 0.0000000 0.000000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0 0.00000 0.000000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.000000 0.000000 0.000000 0.0000000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0 0.00000 0.000000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.221849 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.489455 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0.0000000 1.221849 0 0 0 0 0 0 0 0 0 0 0 0.853872 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.09691 0 0 0 0 1.221849 0 0 0 0 0 0.00000 0 0 0.00000 0 0 2 0 0 0 0 0 0.00000 0.00000 0 0 0 0.00000 0 0.00000 0 0 0.6197888 0 0 0 0.00000 1.221849 0 0 0 0 0 0 0 0 0 0 0.00000 0 0.00000 0 0 0 1.39794 0 0 0 0 0 0 0.00000 0 0 0.00000 0 0 0 0 0.00000 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0.00000 0 0 0 0 0 0 0.00000 0 0 0.00000 0.00000 0 0.00000 0 0 0 0 0 0 0.00000 0.00000 5.09691 0 0 0.00000 0 0 0 0 0 0 0 0.00000 0.00000 0 1.221849 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.221849 0 0 0
text4 0.00000 0.000000 0.0000000 0.0000000 0.00000 0.000000 0.0000000 0.1723723 0.5850267 0.5850267 0.0000000 0.2218487 0.00000 0.0000000 0.000000 0.0000000 0.0000000 0.0000000 0.0000000 0.00000 0.000000 0.0000000 0.000000 0.00000 0.2076083 0.00000 0.1426675 0.00000 0.0000000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.000000 0.000000 0.00000 0.000000 0.000000 0.00000 0.00000 0.00000 0.000000 0 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.0000000 0.00000 0.000000 0.00000 0.0000000 0.000000 0.000000 0.00000 0.00000 0.0000000 0.0000000 0.000000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.000000 0.6228249 0.0000000 0.00000 0.0000000 0.000000 0.00000 0.000000 0.000000 0.000000 0.00000 0 0.00000 0 0 0.3565473 0.39794 0.000000 0 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.0000000 0.00000 0 0.000000 0.00000 0.00000 0.00000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.000000 0.00000 0 0.000000 0.0000000 0.00000 0.00000 0 0.000000 0.00000 0.000000 0.000000 0.00000 0.00000 0.000000 0.00000 0 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0 0.0000000 0.000000 0 0.6575773 0.5850267 0.6575773 0.6575773 1.221849 0.5850267 1.69897 1.69897 1.69897 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0 0.00000 0.000000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.000000 0.000000 0.000000 0.0000000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0 0.00000 0.000000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0.000000 0 0 0 0 0 0.00000 0 0 0.00000 0 0 0 0 0 0 0 0 0.00000 0.00000 0 0 0 0.00000 0 1.69897 0 0 0.0000000 0 0 0 0.00000 0.000000 0 0 0 0 0 0 0 0 0 0 0.00000 0 0.00000 0 0 0 0.00000 0 0 0 0 0 0 0.00000 0 0 0.00000 0 0 0 0 0.00000 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0.00000 0 0 0 0 0 0 0.00000 0 0 0.00000 0.00000 0 0.00000 0 0 0 0 0 0 0.00000 0.00000 0.00000 0 0 0.00000 0 0 0 0 0 0 0 0.00000 0.00000 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0
text5 0.00000 1.170053 0.6197888 0.9208188 0.00000 0.000000 0.3349822 0.9480476 1.1700533 1.1700533 0.6575773 0.2218487 0.79588 0.5228787 0.236572 0.0000000 0.0000000 0.9208188 0.0000000 1.39794 0.000000 0.6197888 0.000000 0.00000 0.2076083 0.00000 0.2853350 0.00000 0.0000000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.000000 0.000000 0.00000 0.000000 0.000000 0.00000 0.00000 0.00000 0.000000 0 0.00000 0.00000 0.00000 0.00000 0.00000 1.09691 0.00000 0.000000 0.0000000 0.00000 0.000000 0.00000 0.4685211 0.000000 1.105684 0.00000 0.00000 0.0000000 0.5850267 0.000000 0.00000 0.00000 0.00000 2.09691 0.000000 0.00000 1.707744 0.2076083 1.4055632 0.00000 0.0000000 0.853872 0.00000 0.000000 1.170053 1.045757 0.00000 0 0.00000 0 0 0.0000000 0.00000 0.000000 0 0.00000 0.00000 0.000000 0.00000 0.00000 0.79588 0.0000000 0.00000 0 1.221849 0.00000 0.00000 0.00000 0.00000 0.9208188 0.00000 0.00000 0.00000 0.000000 0.00000 0 0.552842 0.6197888 0.00000 0.00000 0 0.000000 0.00000 0.000000 0.000000 0.00000 0.00000 0.000000 0.00000 0 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0 0.0000000 0.000000 0 0.0000000 0.5850267 0.0000000 0.0000000 0.000000 0.0000000 0.00000 0.00000 0.00000 2.79588 1.69897 1.39794 1.69897 1.69897 1.69897 0.853872 1 1.69897 1.841638 0.9208188 0.79588 1.69897 1.69897 1.69897 1.39794 1.09691 1.69897 1.221849 1.69897 1.39794 1.09691 2.79588 2.443697 2.443697 1.489455 0.7447275 1.69897 1.39794 2.443697 1.39794 1.69897 1.69897 3.415488 1.39794 1.69897 1.69897 1.69897 1.69897 1.69897 1.69897 0.6575773 1.39794 1.69897 1.39794 1.39794 1.69897 1.69897 1 1.09691 1.221849 1.221849 1.69897 1.69897 1.69897 1.39794 1.69897 1.69897 0.69897 0 0 0.5228787 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0.5850267 0 0 0 0 0 0 0 0 0 0 0 0.6575773 0.000000 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.69897 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.09691 0 0 0 1 0.000000 0 0 0 0 0 1.69897 0 0 1.39794 0 0 0 0 0 0 0 0 0.00000 0.00000 0 0 0 0.00000 0 0.00000 0 0 0.6197888 0 0 0 0.00000 0.000000 0 0 0 0 0 1 0 1 0 0 1.69897 0 1.69897 0 0 0 0.00000 0 0 0 0 0 0 1.69897 0 0 0.00000 0 0 0 0 1.69897 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 1.39794 0 0 0 0 0 0 0.00000 0 0 0.00000 0.00000 0 0.00000 0 0 0 0 0 0 1.39794 0.00000 0.00000 0 0 0.00000 0 0 0 0 0 0 0 1.39794 0.00000 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0

Four Seasons

four_seasons.tfidf <- dfm_tfidf(four_seasons.dfm)
head(four_seasons.tfidf, 5) %>% kable(caption = "TF-IDF - Four Seasons") %>% kable_styling(bootstrap_options = c("striped", "hover"), position = "center")
TF-IDF - Four Seasons
doc_id pre-covid non-consecutive room immaculate service staff fantastic conference call internet front-of-house available bid test free first see sufficient -they also offer premium much additional cost however connection fast exceptional eye detail personal upon repeat visit concierge care remember name luggage storage like great comfortable stay four hotel perfect location manhattan easy walk various subway taxi always nearby clean spacious star try get noise though roomservice fine swift excellent breakfast cut wolfgang puck lunch diner friendly notice big-eye tuna tartare exactly just tasty one sister restaurant mbs singapore definitely recommend downtown luxury due little electric mirror bathroom etc super close memorial steakhouse two wtc wall street relatively overall look feel modern design decent size oculus view still put bath big part really bright temperature control space abundance complaint bed soft depression center mattress lobby food particularly outstanding activity area good choice december nice front desk absolutely warm attentive everyone highly enough us bride groom unfortunately- celebrate 50th birthday new york turn expect previous comment quality attention par impressive bottle champagne arrival tray happy plate immediately tip late meet friend since card speechless even give gift property beautiful another window delicious blond girl kind despite terrible away member sierra anytime go show pool trip city memorable superb steam relax kutura reception ever helpful thank calm within energetic team attitude instead typical special daughter break wife incredible style presentation flawless around town safe home night pleasant airport transfer flight car impeccable every interaction wonderful housekeeping treasure small door bell bar point uptown next time heart five year stylish luxurious spa although jacuzzi access distance key lovely dream getaway unbelievable believe checkout large professional impeccably unobtrusive efficient afternoon snack saltless pretty tasteless toast nothing coffee something upscale weak slow glacial ask long able order overpriced near world trade class way truly minute quiet brooklyn bridge recently work high-end nyc entire actually add cloth cord keeper hesitate address iconic faultless moment fs ease extra mile help katora manager eager place day convenient many different tourist resturants rate everything guest guestroom spotless five-star experience several frequent ritz carlton disappointment live maybe business back thursday find note private event alternative concern can use lucky honeymoon trouble cloud cake thoughtful touristing stone’s throw plenty unfortunately news write review caribbean seem almost slick fu k 5-star let tv ipad lobster ramen starchy mushy never weirdly cart meal hallway morning leave combination phenomenal make miss save usually union square park doorman may hard attendant prompt right want check hot water start shower wait ten bathtub gorgeous uncomfortable 40th end august staycation unfortunate severe allergy twice story short ambulance didnt human say hudson suite fabulous huge in-room bedroom closet nicely master tub throughout early week odd else west 47th 8th avenue hospitality love worldwide single person house whole family 19th floor craziness ny dinner steak husband touch important warmth awesome forward soon common brand soho eventually life usual cold air set low centigrades affordable future man seamless corner high level colour clear focus priority magnificent unique favorite beyond prefer vibe tribeca unparalleled return anyone architecture gem architect robert a.m stern contemporary elegance skyline interior sleek oh god come true light among river beekman barclay bumper traffic wonder ice old backseat grateful raul asset company straight grab sure incredibly hello open promptly extremely well-appointed display behind blackout completely multiple real quite quick vegetarian nish nush rude picture regular trust recieved décor heavenly gymn full culinary bff familiar pleasantly st know rather accommodate check-in upgrade worthy mention lorenzo villoresi amenities-wise 24-hours gym weight exercise cross term conveniently drawback travel lot need hope karin treat ambiance imani premier king trade-awesome guess normal totally mother’s present agent brett addition nasha speak passion compliment memory last mom lifetime accommodation amaze amend amenity appoint appointment arrive assist associate eat attend attraction base become bike bite blow block book bring build cafe charge chill choose color compare condition confirm credit crow curtain customer decide delay delight deliver dine disappoint distinguish egg employee encounter enjoy escort excite expectation face facility faint fire freeze glass greet greeting grill hallmark happen hour ignite impress include invite issue kid landmark layout learn link locate lover manage mix month noodle numb occupy okay operation option organise overcook overlook pick power preference provide raise recommendation reflect reheat resemble rise ruin sit scheme season security sell send serve server sheet shock sight sleep slipper smile soak spend standard stock stope stop stun suburb surprise swim take tell thing toiletry towel trainer traveler treadmill tuck waiter wake wed welcome
text1 1.69897 1.69897 0.1426675 1.39794 1.1359866 1.3489687 1.221849 1.69897 1.09691 1.69897 1.69897 1.69897 1.69897 1.69897 2.79588 1 1 1.69897 1.69897 1 1.221849 1.69897 0.6197888 1.69897 1.69897 0.9208188 1.69897 2.79588 1.09691 1.69897 3 1.39794 1.09691 1.69897 1.39794 1.221849 1.09691 1.69897 1.09691 1.09691 1.221849 0.69897 0.0000000 0.0000000 0.1549020 0.00000 0.0000000 0.000000 0.0000000 0 0 0.00000 0.00000 0.00000 0.00000 0 0.00000 0.0000000 0.000000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.000000 0 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.000000 0.0000000 0.0000000 0.000000 0.00000 0 0.00000 0.000000 0.0000000 0.00000 0.00000 0.000000 0.0000000 0.00000 0.000000 0.00000 0.00000 0 0.00000 0.00000 0.000000 0.000000 0 0.00000 0.00000 0.000000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.000000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.0000000 0.00000 0.00000 0.00000 0.00000 0 0.000000 0.00000 0.00000 0.00000 0.0000000 0.0000000 0.00000 0.00000 0.0000000 0.0000000 0.0000000 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.09691 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.09691 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0.9208188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.69897 0 0 1.69897 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 1.39794 0 0 0 0 0 1.69897 0.9208188 0 0.00000 0 0 0 0 0 0 0 0.00000 0 0 0 0.00000 0.00000 0 0 0 0 0.00000 0 0 0 0.00000 0 0 0 0 0 0 0 1.39794 0 0 0 0 0 0 0 0 0 0 0 0.000000
text2 0.00000 0.00000 0.2853350 0.00000 0.0000000 0.0000000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0 0 0.00000 0.00000 0 0.000000 0.00000 0.6197888 0.00000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 0 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.9370422 0.6575773 0.3098039 0.30103 0.3349822 0.853872 0.4202164 1 1 0.79588 1.69897 1.09691 1.69897 1 1.39794 0.6197888 0.853872 0.9208188 1.39794 0.79588 1.69897 1.39794 1.39794 1.69897 1.69897 0.853872 0.853872 2 2.79588 2.79588 1.69897 1.39794 0.69897 1.69897 1.69897 1.69897 1.69897 1.69897 1 1.69897 0.6575773 1.69897 0.69897 1.69897 1.69897 0.853872 0.6197888 0.0000000 0.000000 0.00000 0 0.00000 0.000000 0.0000000 0.00000 0.00000 0.000000 0.0000000 0.00000 0.000000 0.00000 0.00000 1 0.00000 0.00000 0.000000 0.000000 0 0.00000 0.00000 0.000000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.000000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.0000000 0.00000 0.00000 0.00000 0.00000 0 0.000000 0.00000 0.00000 0.00000 0.0000000 0.3767507 0.00000 0.00000 0.0000000 0.0000000 0.0000000 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.853872 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.221849 0 0 0 0 0 0 1.39794 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.09691 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.09691 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0.00000 0 0 0 0 0 0.00000 0.0000000 0 0.00000 0 0 0 0 0 0 0 0.30103 0 0 0 1.39794 1.69897 0 0 0 0 0.00000 0 0 0 1.69897 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 1.221849
text3 0.00000 0.00000 0.0000000 0.00000 0.0000000 0.0000000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0 0 0.00000 0.00000 0 0.000000 0.00000 0.0000000 0.00000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 1 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.0000000 0.0000000 0.4647059 0.30103 0.1674911 0.000000 0.0000000 0 0 0.00000 0.00000 0.00000 0.00000 0 0.00000 0.0000000 0.000000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.853872 0.000000 0 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0 0.00000 0.6575773 0.00000 0.00000 0.00000 0.00000 0.000000 0.0000000 0.5228787 1.221849 1.09691 1 1.69897 1.221849 0.6197888 1.69897 1.39794 0.853872 0.9208188 1.69897 0.000000 0.00000 0.00000 0 0.00000 0.00000 0.000000 0.000000 0 0.00000 0.00000 0.000000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.000000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.0000000 0.00000 0.00000 0.00000 0.00000 0 0.000000 0.00000 0.00000 0.00000 0.0000000 1.5070028 0.00000 0.00000 0.0000000 0.0000000 0.0000000 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7447275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.9208188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0.00000 0 0 0 0 0 0.00000 0.0000000 0 0.00000 0 0 0 0 0 0 0 0.30103 0 0 0 0.00000 0.00000 0 0 0 0 1.69897 0 0 0 0.00000 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0.000000
text4 0.00000 0.00000 0.5706700 0.00000 0.2839967 0.3372422 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0 0 0.00000 0.00000 0 0.000000 0.00000 0.0000000 0.00000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 0 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 1.09691 1.221849 0.00000 0.0000000 0.0000000 0.1549020 0.60206 0.3349822 0.000000 0.0000000 0 1 0.79588 0.00000 0.00000 0.00000 0 0.00000 0.0000000 1.707744 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.853872 0.853872 0 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0 0.00000 0.6575773 0.00000 1.39794 0.00000 0.00000 0.000000 0.0000000 0.0000000 0.000000 0.00000 0 0.00000 0.000000 0.0000000 0.00000 0.00000 0.000000 0.0000000 0.00000 1.221849 1.39794 1.39794 1 1.69897 1.39794 0.853872 0.853872 1 1.09691 1.39794 1.221849 1.39794 0.9208188 2.19382 1.69897 3.39794 1.39794 1.221849 0.853872 1.69897 1.69897 1.69897 1.69897 1.69897 1.221849 0.6575773 1.39794 1.69897 1.09691 1.69897 1 0.853872 1.69897 1.39794 1.69897 0.9208188 0.3767507 1.69897 0.00000 0.0000000 0.0000000 0.0000000 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.853872 0 0 0 0 0 0 0 0 0 0 0 0.9208188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 1.09691 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.39794 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 1.69897 0 0 0.00000 0 0 0 0 0 0.00000 0.0000000 0 0.00000 0 0 0 0 0 0 0 0.60206 0 0 0 0.00000 0.00000 0 0 0 0 0.00000 0 0 0 0.00000 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0.000000
text5 0.00000 0.00000 0.1426675 0.00000 0.2839967 0.0000000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0 0 0.00000 0.00000 0 0.000000 0.00000 0.0000000 0.00000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 0 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.4685211 0.0000000 0.1549020 0.00000 0.0000000 0.000000 0.0000000 0 0 0.00000 0.00000 0.00000 0.00000 0 1.39794 0.6197888 0.853872 0.0000000 0.00000 0.79588 0.00000 0.00000 0.00000 0.00000 0.00000 0.853872 0.000000 0 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0 0.00000 0.0000000 0.00000 0.69897 0.00000 0.00000 0.000000 0.0000000 0.0000000 0.000000 0.00000 0 0.00000 0.000000 0.0000000 0.00000 0.00000 0.000000 0.0000000 0.00000 0.000000 0.00000 0.00000 0 0.00000 0.00000 0.000000 0.000000 1 0.00000 0.00000 0.000000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.000000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 1.221849 0.0000000 0.00000 0.00000 0.00000 0.00000 0 0.000000 0.00000 0.00000 0.00000 0.0000000 0.0000000 0.00000 1.69897 0.6575773 0.5850267 0.5850267 1.39794 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0.9208188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0.00000 0 0 0 0 0 0.00000 0.0000000 0 1.69897 0 0 0 0 0 0 0 0.00000 0 0 0 0.00000 0.00000 0 0 0 0 0.00000 0 0 0 0.00000 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0.000000

Peninsula

peninsula.tfidf <- dfm_tfidf(peninsula.dfm)
head(peninsula.tfidf, 5) %>% kable(caption = "TF-IDF - Peninsula") %>% kable_styling(bootstrap_options = c("striped", "hover"), position = "center")
TF-IDF - Peninsula
doc_id february definitely one new york star favourite good size clean lovely staff really helpful location fantastic everywhere easy walk return something news legendary like peninsula nyc savoy london home fact unfathomable time even may frequent far often one’s neighborhood difficult think many around regular symbolic place political cultural world-altering rudy giuliani hear us still familiar soccer superstar george lucky enough weekend end lpeninsula trip oxford vancouver september year commemoration everything ie truly wonderful 5th ave 55th singularity right center midtown prime position important roosevelt centre also fine bar lounge terrific service food roof top patio great across hotel just wonder pool street love almost anywhere drop hat high peninsula’s favorite life five world pet policy stay buddhist dog riley p enthusiastic traveller bon vivant riley’s kind bucket list now eagerly s first dream simply long team immediately excellence breakfast spa incredible sense appartenence since someone another name caroline director front desk thank samir remember forever smile enthusiasm big ny close central park rockefeller square away impeccable bad somewhat spacious match hong kong shanghai luxurious price main factor come 2-3 work beautiful super dreamy every member extremely room late check 2pm arrival gym equipment constantly hand sanitiser tiny etc pleasant current coronavirus nice relatively feel hustle bustle outside comfortable awhile much sqaure go beyond make sure need space restaurant 1st 2nd floor superb bottom smooth swift meticulous dirt dust aggravate disgust yet customer sublime everyone hard get friendly property quite spectacular cousin beverly base family business apple two solid currently tree manhattan atmospheric four country mile selective product successful although eventually properly clement ambiance outstanding genuinely gotham forward rooftop salon especially chalet fitness strong want part investment revamp compete york’s can beat always -star help bathroom experience avoid marathon busy plenty action try old degree weather wife prosecco nicely version worth admission bring continuously professional waitstaff photo ever sweet put moslem carpet water hose nevertheless concierge housekeeping appreciate thankfull special fabian manager future departure reception delightful delicious wine wait genuine friendliness scrub massage perfect course ideal suite ample storage luggage site elegance extraordinary nothing thanksgiving treatment moment christmas decoration festive brunch in-house egg white frittata fruit bowl along meal quick dip appointment therapist skilful day everyday beautifully chocolate fondue yesterday drink excellent decor entrance last call find sit available small table inside person plus taxes.paying expectation boat restroom area full dirty situation december exception exterior trademark bellman bellmen welcome care interior tastefully next stop shuma avenue expect linen class fluffy oscar de la renta bath tub shower mention view see cold november night keep warm back highly recommend sheer opulence classic ning choose pradeep fix issue ago iconic pay attentive polite however simple soul coffee maker ready early happen little happy city building wall money possible gift grateful budget elsewhere rest entertainment discretionary income though opulent travel lot know dimond leave near st patrick cathedral comeback three pennisula celebrate 30th anniversary week read series tripadvisor disrepair become advance worry aware receive fresh wonderfully consistent please note nightly start upon deal perfectly morning sauna swim chill jetlag elegantly large oversized incredibly absolutely bill astronomical free per charge downstairs frequently visit convenient boutique y offer scale couple overall notch balance effortlessly deluxe king technology able understand functionable without discount price-point value voice plan style afternoon tea lobby artwork display sadly town happily disappoint quiet bed enjoyable door usual standard efficient impression grande luxe epitome pure luxury quality level personalisation janset stephanie opportunity necessary aback local chinese 6th natural light whatsoever unfortunately deferential dinner people ahead chain u.n advise disruptive elevator availability- security point tsa horrible outlier recent check-in process uncomfortable bother neck rare aside loud night’s sleep thing disappointment lunch okay expensive mattress shockingly seriously overpriced daughter must within lively ridiculous wish tiffanys queen classically doorman besides else hallway musty smell usb use refresh traditional prefer modern curtain bangkok step hall enough.yes yes tax way mini say side personnel thankless job overly conscientious 5-th jonathan june bright management learn junior executive superior sofa period except example gel give shampoo take stack brown change tissue school accommodation wife’s birthday bottle champagne thru case magnificent impressive stairway beneath massive chandelier speed pace presentation total provide gourmet shame surround plaza death deck sundown wrong apart slightly unthoughtful deliver hesitate miah friend’s show swedish locker steamroom rarity individual privacy men’s oasis believe asia heart paris chance posh-lifestyle true hospitality respond advisedly kettle headshower tv automatically half hour repair traffic generally chaotic valet surprisingly bell exceptionally low indoor dine sundeck herb certain charm poor average terrible hvac premium mediocre promise incomparable touch maybe line rave add separate animal multiple real concrete jungle negative whenever albeit short upgrade difference art entertain hope continue break hyatt different opt key include delicate attention cake son’s zoo activity easter unfortunate glitch children’s 11.30am apparently till tell seemingly drawer extension open velcro-ed rather odd unattractive brooklyn keycard id abandon accommodate accomplish accustom ache advertise aesthetic all-rounder allow amaze amenity answer appoint approach arrive ask aspect assure attach attendant await bite blanket block book boy build cabinet cater chair charger child circumstance clothe cocktail colleague complaint concern confirm confuse contact continent county crank crowd cup date decide decorate department dessert detail disjoint spin-dry effort email employee enjoy enlighten ensure enter escort establishment event exceed excite explain facility fall fashion fawn feature figure finish flake float friend girl greet group guest haunt head heat heater hem hill hinge igloo impress intend interact isolate item kid kill lack lady lay lead less lift live locate look maintain manage mean meet mind min minute move notice numb occasion occur option overbook overcharge overlook owner pamper paper pillowcase play polish positive post pray prepare purpose question run rate reach recommendation remind reopen request review robe sail sale save season seat 2 seem serve set share shock shop signal situate slipper snack snicker snow socket spend spruce stretch stun suggest surprise switch teenager term 3 tire toiletry towel train trainer treat understate unravel update vary venue waiter wake wind wipe wire yorker
text1 1.69897 4.19382 0.4685211 1.105684 1.239577 1.09691 1.39794 0.473144 1.09691 0.79588 0.79588 0.3372422 0.6575773 0.9208188 0.552842 1 1.221849 1.69897 1.09691 1 0.00000 0.00000 0.00000 0 0.0000000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.0000000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.0000000 0 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0 0.00000 0.00000 0.00000 0.000000 0.000000 0.000000 0.00000 0.00000 0.00000 0.000000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.000000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.0000000 0.000000 0.2853350 0.00000 0.00000 0.000000 0.000000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.4152166 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.0000000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0 0 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0 0 0.000000 0.00000 0.00000 0.00000 0.000000 0.00000 0.000000 0.00000 0.00000 0.000000 0.000000 0.00000 0.00000 0 0.00000 0.00000 0 0.00000 0 0.00000 0.000000 0.00000 0.000000 0.00000 0.00000 0.1674911 0 0.0000000 0.00000 0.000000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.0000000 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0.000000 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.6575773 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 1.39794 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0.000000 0 0 0 0 0 0 0 0 1.39794 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0.00000 0 0 0 0.00000 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0.00000 0.00000 0.00000 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0.00000 1.39794 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0.00000 0.00000 0 0 0 0 0 0.00000 0 0.00000 0 0.00000 0 0 0.00000 0 0 0 0 0.00000 0 0 0 0.00000 0 0 0.00000 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0.000000 0.00000 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0.00000 0 0 0 0 0 0 0.00000 0 0 0 0 0.00000 0 0 0 0 0 0
text2 0.00000 0.00000 1.4055632 0.000000 0.000000 1.09691 0.00000 1.419432 0.00000 0.00000 0.00000 0.0000000 0.0000000 0.0000000 0.552842 0 0.000000 0.00000 0.00000 0 1.09691 1.69897 1.69897 2 2.6372550 3.723638 5.09691 1.69897 1.09691 4.19382 1.69897 0.9370422 1.489455 1.39794 1.69897 1.39794 1.39794 3.39794 1.69897 1.69897 1.221849 0.9208188 2 1.39794 1.69897 2.234183 1.69897 1.69897 1.69897 1.69897 1.69897 1.69897 1 1.09691 1.69897 1.69897 1.69897 1.69897 1.39794 1.09691 1.841638 1.39794 1.69897 1.09691 1.69897 1.69897 1.69897 2 1.69897 1.09691 1.69897 0.853872 1.707744 1.707744 3.39794 2.79588 1.69897 1.239577 1.221849 1.69897 1.69897 1.69897 1.69897 1.69897 1.39794 1.841638 1.09691 1.405563 1.221849 1.39794 0.60206 0.69897 2.19382 2.97891 1.69897 0.3767507 1.221849 0.5706700 1.39794 1.69897 2.561616 1.221849 0.7447275 1.69897 1.69897 1.69897 1.69897 0.9208188 3.39794 1.69897 2.79588 2.79588 1.09691 2.79588 1.69897 0.4152166 1.69897 1.69897 1.69897 1.69897 1.69897 1.69897 1.69897 1.69897 1.69897 1.221849 1.69897 1.39794 1.09691 1.69897 1.39794 0.0000000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0 0 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 3 0 0.000000 0.00000 0.00000 0.00000 0.000000 0.00000 0.000000 0.00000 0.00000 0.000000 0.000000 0.00000 0.00000 0 0.00000 0.00000 0 0.00000 0 0.00000 0.000000 0.00000 0.000000 0.00000 0.00000 0.0000000 0 0.0000000 0.00000 0.000000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.0000000 0 0 0 0 0 0 0 1.707744 0 0 0 0 0 0 0 0.9208188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.69897 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.552842 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.221849 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.09691 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 2.443697 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.6575773 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.221849 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.331092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.6197888 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.09691 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.39794 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.79588 0 0 0 0.000000 0 0 0 0 0 0 0 0 0.00000 0 1.39794 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0.00000 0 0 0 0.00000 0 0 1.69897 0 0 0 0 0 0 0 0 0 0 0 1.69897 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0.00000 1.69897 1.69897 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 1.69897 0 0 0 0 3.39794 0 0 0 0 0 0 0 0 1.69897 0.00000 0 0 0 0 0 0 0 1.69897 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 3.39794 1.09691 1 0 0 0 0 1.69897 0 0.00000 0 0.00000 0 0 1.69897 0 0 0 0 1.69897 0 0 0 1.69897 0 0 1.69897 0 0 0 0 0 0 0 0 0 1.69897 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 1.221849 1.69897 0 0 0 0 0 0 0 0 1.69897 0 0 0 0 0 0.00000 0 0 0 0 0 0 1.39794 0 0 0 0 1.69897 0 0 0 0 0 0
text3 0.00000 0.00000 0.4685211 0.000000 0.000000 0.00000 0.00000 0.000000 0.00000 0.79588 0.00000 0.0000000 0.6575773 0.0000000 0.000000 0 0.000000 0.00000 0.00000 0 0.00000 0.00000 0.00000 0 0.3767507 0.000000 0.00000 0.00000 1.09691 0.00000 0.00000 0.4685211 1.489455 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.9208188 0 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0 0.00000 0.00000 0.00000 0.000000 0.000000 0.000000 0.00000 0.00000 0.00000 0.000000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.000000 0.000000 0.00000 0.30103 0.69897 0.00000 0.00000 0.00000 0.3767507 0.000000 0.4280025 0.00000 0.00000 0.000000 0.000000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.2076083 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.7447275 1.69897 1.221849 1.09691 1.69897 1.69897 1.69897 0.853872 0.69897 1.69897 1.69897 1.69897 1.39794 1.39794 1.39794 1.39794 1.69897 1.69897 1 1 0.9208188 1.39794 1.69897 1.69897 1.69897 1.69897 1.221849 1.09691 0 0 0.000000 0.00000 0.00000 0.00000 0.000000 0.00000 0.000000 0.00000 0.00000 0.000000 0.000000 0.00000 0.00000 0 0.00000 0.00000 0 0.00000 1 0.00000 0.000000 0.00000 0.000000 0.00000 0.00000 0.0000000 0 0.0000000 0.00000 0.000000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.0000000 0 2 0 0 0 0 0 1.707744 0 0 0 0 0 0 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.79588 0 0 0 1.09691 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.221849 0 0 0 0.000000 0 0 0 0 0 0 0 0 1.09691 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0.000000 0 0 0 0 0 0 0 0 0.00000 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.09691 0 0 0 0 0 0 0 0 0.00000 0 0 0 1.69897 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 1.69897 0.00000 0.00000 0 0 0 0 0 0 1.69897 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0.00000 0.00000 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0.00000 0.00000 0 0 0 0 0 0.00000 0 0.00000 0 0.00000 0 0 0.00000 0 0 0 0 0.00000 0 0 0 0.00000 0 0 0.00000 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 1.09691 0 0 0 0 0 0.000000 0.00000 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 1.69897 0 0 0 0 0 0 0.00000 0 0 0 0 0.00000 0 0 0 0 0 0
text4 0.00000 0.00000 0.0000000 0.000000 0.000000 0.00000 0.00000 0.236572 0.00000 0.00000 0.00000 0.0000000 0.0000000 0.0000000 0.552842 0 0.000000 0.00000 0.00000 0 0.00000 0.00000 0.00000 0 0.7535014 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.4685211 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.0000000 0 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0 1.09691 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0 0.00000 0.00000 0.00000 0.000000 0.000000 0.000000 0.00000 0.00000 0.00000 0.000000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.000000 0.000000 0.00000 0.30103 0.00000 0.00000 0.00000 0.00000 0.0000000 0.000000 0.1426675 0.00000 0.00000 0.000000 0.000000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.2076083 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.0000000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.853872 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0 0 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 1 1 0.853872 1.39794 1.69897 1.69897 1.221849 1.09691 1.221849 1.09691 1.39794 1.221849 1.221849 1.39794 1.09691 1 1.39794 1.69897 0 0.00000 0 0.00000 0.000000 0.00000 0.000000 0.00000 0.00000 0.1674911 0 0.0000000 0.00000 0.000000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.0000000 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0.000000 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0 0 0 0 1.221849 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0.000000 0 0 0 0 0 0 0 0 0.00000 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0.00000 0 0 0 0.00000 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0.00000 0.00000 0.00000 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0.00000 0.00000 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0.00000 1.09691 0 0 0 0 0 0.00000 0 1.39794 0 0.00000 0 0 0.00000 0 0 0 0 0.00000 0 0 0 0.00000 0 0 0.00000 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0.000000 0.00000 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0.00000 0 0 0 0 0 0 0.00000 0 0 0 0 0.00000 0 0 0 0 0 0
text5 0.00000 0.00000 0.4685211 0.000000 0.000000 0.00000 1.39794 0.000000 0.00000 1.59176 0.00000 1.0117265 0.0000000 0.9208188 0.000000 0 1.221849 0.00000 0.00000 0 0.00000 0.00000 0.00000 0 0.3767507 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.9370422 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.0000000 1 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 1 0.00000 0.00000 0.00000 0.000000 0.000000 0.000000 0.00000 0.00000 0.00000 0.000000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.000000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.0000000 0.000000 0.1426675 0.69897 0.00000 0.853872 0.000000 0.7447275 0.00000 0.00000 0.00000 0.00000 0.0000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.4152166 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.0000000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.000000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 1.39794 0.00000 0.00000 0.00000 0 0 0.9208188 0.00000 0.00000 0.00000 0.00000 0.00000 0.000000 1.09691 0 0 0.000000 0.00000 0.00000 0.00000 0.000000 0.00000 0.000000 0.00000 0.00000 0.000000 0.000000 0.00000 0.00000 0 0.00000 0.00000 1 1.69897 1 1.09691 2.443697 1.69897 0.853872 1.69897 1.09691 0.3349822 1 0.7447275 1.69897 1.221849 0.853872 1.39794 1.69897 1.69897 1.69897 1.69897 1.39794 1.39794 1.69897 1.69897 0.6575773 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.69897 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0.000000 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0000000 0 0 0 1.09691 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.221849 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 1.221849 0 0 0 0 0 0 0 0 0.00000 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 1.39794 0 0 0 0.00000 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 0 0 1.69897 0 0 0 0 0 0 0 0.00000 0.00000 0.00000 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0.00000 0.00000 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0 1.39794 0 0 0 0 0 0 0 0 0 0 0.00000 0.00000 0 0 0 0 0 0.00000 0 0.00000 0 1.69897 0 0 0.00000 0 0 0 0 0.00000 0 0 0 0.00000 0 0 0.00000 0 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0.000000 0.00000 0 0 0 0 0 0 0 0 0.00000 0 0 0 0 0 0.00000 0 0 0 0 0 0 0.00000 0 0 0 0 0.00000 0 0 0 0 0 0

The DTM and TF-IDF analyses reveal that the matrices are very sparse for all four hotels. In other words, they are mostly empty and provide little information. We will thus apply dimension reduction techniques.

Term Frequency

Then, we investigate what are the most frequent terms in the reviews for hotels.

Econo lodge

econo.freq <- textstat_frequency(econo.dfm)
head(econo.freq, 5) %>% kable(caption = "TF - Econo lodge") %>% kable_styling(bootstrap_options = c("striped", "hover"), position = "center")
TF - Econo lodge
feature frequency rank docfreq group
room 78 1 36 all
hotel 46 2 31 all
small 35 3 25 all
stay 34 4 24 all
time 33 5 24 all

St-James

st_james.freq <- textstat_frequency(st_james.dfm)
head(st_james.freq, 5) %>% kable(caption = "TF - St-James") %>% kable_styling(bootstrap_options = c("striped", "hover"), position = "center")
TF - St-James
feature frequency rank docfreq group
hotel 105 1 41 all
room 82 2 36 all
stay 55 3 31 all
time 45 4 34 all
clean 37 5 31 all

Four Seasons

four_seasons.freq <- textstat_frequency(four_seasons.dfm)
head(four_seasons.freq, 5) %>% kable(caption = "TF - Four Seasons") %>% kable_styling(bootstrap_options = c("striped", "hover"), position = "center")
TF - Four Seasons
feature frequency rank docfreq group
room 62 1 36 all
hotel 60 2 34 all
stay 55 3 35 all
service 36 4 26 all
four 34 5 25 all

Peninsula

peninsula.freq <- textstat_frequency(peninsula.dfm)
head(peninsula.freq, 5) %>% kable(caption = "TF - Peninsula") %>% kable_styling(bootstrap_options = c("striped", "hover"), position = "center")
TF - Peninsula
feature frequency rank docfreq group
hotel 68 1 36 all
room 54 2 34 all
good 48 3 29 all
stay 47 4 31 all
peninsula 37 5 21 all

The analysis of the most frequent terms for each hotel shows that terms like “hotel”, “room” and “stay” are common to all hotels and are very frequent, even though they are not stop words. It is interesting to remove them since they are not specific to any hotel and thus do not bring any information.

Second Analysis of TF

Before looking at this section, we decided to remove some words that will be common to all hotels (i.e. hotel, room and stay).

econo_reviews.tok <- econo_reviews.tok %>% tokens_remove(c("hotel", "room", "stay"))
four_seasons_reviews.tok <- four_seasons_reviews.tok %>% tokens_remove(c("hotel", "room", "stay"))
peninsula_reviews.tok <-peninsula_reviews.tok %>% tokens_remove(c("hotel", "room", "stay"))
st_james_reviews.tok <-st_james_reviews.tok %>% tokens_remove(c("hotel", "room", "stay"))

We compute again the term frequencies to see if the results are better.

Econo lodge

econo.dfm2 <- dfm(econo_reviews.tok)
econo.tfidf2 <- dfm_tfidf(econo.dfm2)
econo.freq2 <- textstat_frequency(econo.dfm2)
head(econo.freq2, 5) %>% kable(caption = "TF - Econo lodge") %>% kable_styling(bootstrap_options = c("striped", "hover"), position = "center")
TF - Econo lodge
feature frequency rank docfreq group
small 35 1 25 all
time 33 2 24 all
bed 33 2 18 all
location 30 4 27 all
good 30 4 23 all

St-James

st_james.dfm2 <- dfm(st_james_reviews.tok)
st_james.tfidf2 <- dfm_tfidf(st_james.dfm2)
st_james.freq2 <- textstat_frequency(st_james.dfm2)
head(st_james.freq2, 5) %>% kable(caption = "TF - St-James") %>% kable_styling(bootstrap_options = c("striped", "hover"), position = "center")
TF - St-James
feature frequency rank docfreq group
time 45 1 34 all
clean 37 2 31 all
location 36 3 30 all
square 32 4 29 all
great 30 5 22 all

Four Seasons

four_seasons.dfm2 <- dfm(four_seasons_reviews.tok)
four_seasons.tfidf2 <- dfm_tfidf(four_seasons.dfm2)
four_seasons.freq2 <- textstat_frequency(four_seasons.dfm2)
head(four_seasons.freq2, 5) %>% kable(caption = "TF - Four Seasons") %>% kable_styling(bootstrap_options = c("striped", "hover"), position = "center")
TF - Four Seasons
feature frequency rank docfreq group
service 36 1 26 all
four 34 2 25 all
season 33 3 25 all
good 32 4 21 all
staff 30 5 23 all

Peninsula

peninsula.dfm2 <- dfm(peninsula_reviews.tok)
peninsula.tfidf2 <- dfm_tfidf(peninsula.dfm2)
peninsula.freq2 <- textstat_frequency(peninsula.dfm2)
head(peninsula.freq2, 5) %>% kable(caption = "TF - Peninsula") %>% kable_styling(bootstrap_options = c("striped", "hover"), position = "center")
TF - Peninsula
feature frequency rank docfreq group
good 48 1 29 all
peninsula 37 2 21 all
service 35 3 25 all
great 33 4 21 all
staff 28 5 23 all

This time we observe some differences between the most frequent terms of the different hotels. The 2-star hotels, Econo Lodge Times Square and Hotel St.James, have frequent terms such as “time”, “clean”, “location” and bed", among others. This shows that the reviewers seem to point out the functionality aspect of the hotel.

Whereas, the 5-star hotel have frequent terms such as “service” and “staff”, which highlights that the reviewers seem to appreciate the guest and service-oriented aspects of those hotels. This is what is expected, since 2-star hotels generally provide basic functional services. On the other hand, 5-star hotels focus on delivering exceptional experiences to their guests.

Even though “good” and “great” are very frequent and common terms, we decide to keep them since they will have an impact on the sentiment analysis.

Word cloud DFM

We computed a cloud of words for each hotel to make a clearer visualization. We decided to use only the DFM matrix since the TF-IDF one provided similar results.

Econo lodge

textplot_wordcloud(econo.dfm2)

St-James

textplot_wordcloud(st_james.dfm2)

Four Seasons

textplot_wordcloud(four_seasons.dfm2)

Peninsula

textplot_wordcloud(peninsula.dfm2)

The cloud of words confirm our previous assumption, that the 2-star hotel reviewers focus essentially on the functional aspect of the hotel. Whereas, the 5-star hotel reviewers are more sensible to the overall experience during their stay.

Zipf’s Law with log

We now compute a Zipf’s law on our data. This enables us to see the distribution of words used in the corpuses. The following plots helps us to see what are the terms that are the most frequent and thus are likely to stay in the same proportions if the corpuses are doubled.

Econo lodge

plot(log(frequency)~log(rank), data=econo.freq2, pch=20, main="Zipf’s Law - Econo lodge")
text(log(frequency)~log(rank), data=econo.freq2[1:3,], label=feature, pos=4)

(mod.zipf <- lm(log(frequency)~log(rank), data=econo.freq2))
#> 
#> Call:
#> lm(formula = log(frequency) ~ log(rank), data = econo.freq2)
#> 
#> Coefficients:
#> (Intercept)    log(rank)  
#>      5.1858      -0.8795
abline(coef(mod.zipf))

We can see that the term small seems to be associated with this hotel.

St-James

plot(log(frequency)~log(rank), data=st_james.freq2, pch=20, main="Zipf’s Law - St-James")
text(log(frequency)~log(rank), data=st_james.freq2[1:3,], label=feature, pos=4)

(mod.zipf <- lm(log(frequency)~log(rank), data=st_james.freq2))
#> 
#> Call:
#> lm(formula = log(frequency) ~ log(rank), data = st_james.freq2)
#> 
#> Coefficients:
#> (Intercept)    log(rank)  
#>       5.905       -0.978
abline(coef(mod.zipf))

Four Seasons

plot(log(frequency)~log(rank), data=four_seasons.freq2, pch=20, main="Zipf’s Law - Four Seasons")
text(log(frequency)~log(rank), data=four_seasons.freq2[1:3,], label=feature, pos=4)

(mod.zipf <- lm(log(frequency)~log(rank), data=four_seasons.freq2))
#> 
#> Call:
#> lm(formula = log(frequency) ~ log(rank), data = four_seasons.freq2)
#> 
#> Coefficients:
#> (Intercept)    log(rank)  
#>      5.2315      -0.8893
abline(coef(mod.zipf))

We can see that the hotel name is quite common in the 5 stars hotel.

Peninsula

plot(log(frequency)~log(rank), data=peninsula.freq2, pch=20, main="Zipf’s Law - Peninsula")
text(log(frequency)~log(rank), data=peninsula.freq2[1:3,], label=feature, pos=4)

(mod.zipf <- lm(log(frequency)~log(rank), data=peninsula.freq2))
#> 
#> Call:
#> lm(formula = log(frequency) ~ log(rank), data = peninsula.freq2)
#> 
#> Coefficients:
#> (Intercept)    log(rank)  
#>      5.4687      -0.8988
abline(coef(mod.zipf))

As said for the Four Seasons, we can see that the name of the hotel is a frequent term in their reviews.

Sentiment Analysis

The next part of the analysis focuses on uncovering what are the sentiments associated to each of the hotels.

Econo Lodge

econo_reviews.sent <- tokens_lookup(econo_reviews.tok, dictionary = data_dictionary_LSD2015) %>% dfm() %>% tidy()
ggplot(econo_reviews.sent,aes(y=document, x=count, fill=term)) + 
  geom_bar(stat="identity") +
  theme_bw()+
  ggtitle("Sentiment - Econo lodge")

St-James

st_jamesreviews.sent <- tokens_lookup(st_james_reviews.tok, dictionary = data_dictionary_LSD2015) %>% dfm() %>% tidy()
ggplot(st_jamesreviews.sent,aes(y=document, x=count, fill=term)) + 
  geom_bar(stat="identity") +
  theme_bw()+
  ggtitle("Sentiment - St-James")

Four Seasons

four_seasons_reviews.sent <- tokens_lookup(econo_reviews.tok, dictionary = data_dictionary_LSD2015) %>% dfm() %>% tidy()
ggplot(four_seasons_reviews.sent,aes(y=document, x=count, fill=term)) + 
  geom_bar(stat="identity") +
  theme_bw()+
  ggtitle("Sentiment - Four Seasons")

Peninsula

peninsula_reviews.sent <- tokens_lookup(peninsula_reviews.tok, dictionary = data_dictionary_LSD2015) %>% dfm() %>% tidy()
ggplot(peninsula_reviews.sent,aes(y=document, x=count, fill=term)) + 
  geom_bar(stat="identity") +
  theme_bw()+
  ggtitle("Sentiment - Peninsula")

When conducting a sentiment analysis on the reviews of the different hotels, we realize that they are mainly positive, but have also negative elements. None of the four hotels distiguishes itself on this attribute. However, one can notice that the Peninsula is the hotel that has the most positive sentiment since among all its reviews considered, none is fully negative, in contrary to the other hotels that have at least one fully negative associated review.

We then performed a valence shifter analysis to see if better results could be obtained. Unfortunately, the results were not conclusive so we decided not to integrate it in the report. We believe that we obtained similar results since the length of the reviews are very small, therefore reviewers go straight to the point without integrating amplifiers/de-amplifiers nor adversary conjunctions, for instance.

Now that we have analyzed each hotel individually, we will proceed with the rest of the EDA by combining the datasets of all hotels together. We believe that better results could be obtained regarding Lexical Diversity, Topic Modeling, Word Embedding, Clustering and Keyness, when considering differences between hotels than within hotels. On a side note, those analyses were initially tested on each hotel individually, but were not conclusive.

Exploratory Data Analysis - Combined

We start by creating this new dataset that regroups 25 reviews of each hotel. We reduce the number of reviews per hotel for visualization purposes. Additionally, the first 50 reviews represent the 2-star hotels and the last 50, the 5-star ones. We then perform the same cleaning (tokenization, lemmatization and stopwords removal) process done previously.

Lexical diversity

To continue our analysis, we need to create a DTM and TF-IDF objects. We also create the DTM and TF-IDF objects done previously.

all.dfm <- dfm(all.tk)
all.tfidf <- dfm_tfidf(all.dfm)

Our next analysis focuses on uncovering if the richness of the vocabulary used in the reviews, can be a discriminant feature to distinguish 2-star hotel guests from 5-star hotel ones.

Token-Type Ratio

We begin by computing the Token-Type Ratio (TTR).

reviews.div.TTR <- textstat_lexdiv(all.dfm, measure = "I")
reviews.div.TTR %>% 
  ggplot(aes(x=reorder(document, I), y=I)) +
  geom_point() +
  coord_flip() +
  xlab("Text") + 
  ylab("Yule's index") +
  theme_bw()+
  ggtitle("TTR")


As we can observe from the plot above, there is indeed a difference in the richness of the different reviews. However, we cannot differentiate the 2-star reviewers from the 5-star ones, since texts 1-50 and texts 51-100 are not clearly seperated on the graph. We are now going to use the Moving Average TTR to see if better results can be achieved.

MATTR

reviews.div.MATTR <- textstat_lexdiv(all.tk, measure = "MATTR", MATTR_window = 10)
reviews.div.MATTR %>% 
  ggplot(aes(x=reorder(document, MATTR), y=MATTR)) +
  geom_point() +
  coord_flip() +
  xlab("Text") + 
  ylab("MATTR") +
  theme_bw()+
  ggtitle("MATTR")


As presented above, the MATTR does not achieve better results than the TTR. This means that the Lexical Diversity does not appear to be a discriminant feature between 2-star reviewers and 5-star reviewers.

Keyness

We are now going to look at the keyness, to see if certain terms are key to 2-star hotels compared to 5-star hotels. For this, we transform our data set, where text 1 represents the 2-star hotels and text 2, the 5-star hotels.

#we united the 2 stars and 5 stars hotels to create 2 texts
twostars <- paste(unlist(reviews[1:50, 1]), collapse =" ")
fivestars <- paste(unlist(reviews[51:100, 1]), collapse =" ")

twoclasses <- rbind(twostars, fivestars)

twoclasses.dfm <- dfm(twoclasses,
                 remove_punct = TRUE, remove = stopwords("english"),
                 remove_numbers=TRUE)

#let's compare the keyness
keyness <- textstat_keyness(twoclasses.dfm)

textplot_keyness(keyness)+
  ggtitle("Keyness between 2-star and 5-star hotels")

The keyness analysis confirms our previous analyses, To further explain, the terms that are key to 2-star hotels compared to 5-star hotels, are more functionally-oriented, for instance “clean”, “bed” and “room”. Whereas the terms that are key to text 2 (5-star hotels) are more guest experienced-oriented. We have, for example, “experience”, “spa” or “service”, among others.

Rating analysis

Lastly, we are going to analyze the ratings of the different hotels, since it is an attribute that is going to be used in the modeling section.

Reviews_500 %>% group_by(hotel) %>% summarize(Avg_Rating = mean(rating), Median_Rating = median(rating))%>% kable() %>% kable_styling(bootstrap_options = c("striped", "hover"), position = "center")
hotel Avg_Rating Median_Rating
Econo 3.756 4
four seasons 4.708 5
Peninsula 4.480 5
St-james 3.958 4

As we can see the 5-star hotels have unsurprisingly much better ratings in average and in median compared to 2-star hotels. Thus the rating variable appears to be a discriminant feature to differentiate between the two hotel categories.

Unsupervised Analysis

Clustering

Based on Euclidean Distance

We then proceed with the clustering anaylsis, to see if we are able to differentiate the different hotels based on the reviews. Several methods were used to perform the similarity (Jaccard and Cosine) and dissimilarity (Euclidean and Manhattan) analyses, in order to compute the clustering. Since, they were all showing similar results, we decided to focus only on the Euclidean distance, as it is the most common.

all.euc <- textstat_dist(all.tfidf, method = "euclidean", margin = "documents")
all.hc.euc <- hclust(dist(all.euc))
plot(all.hc.euc, main = "Cluster Dendogram - Euclidean")


As mentioned previously, texts 1-50 are 2-star hotels, whereas texts 51-100 are 5-star ones. Unfortunately, the clustering does not help in uncovering any pattern to distinguish the hotels among themselves nor to differentiate 2-star hotels from 5-star ones.

We decide to investigate further the clusters, by focusing on four of them. We choose to look at the ten terms that characterizes them the most.


all.clust <- cutree(all.hc.euc, k=4)


clusters <- data.frame(
  Clust.1 = names(sort(apply(all.tfidf[all.clust==1,],2,sum), decreasing = TRUE)[1:10]),
  Clust.2 = names(sort(apply(all.tfidf[all.clust==2,],2,sum), decreasing = TRUE)[1:10]),
  Clust.3 = names(sort(apply(all.tfidf[all.clust==3,],2,sum), decreasing = TRUE)[1:10]),
  Clust.4 = names(sort(apply(all.tfidf[all.clust==4,],2,sum), decreasing = TRUE)[1:10]))

clusters %>% kable(caption = "Characteristic of 4 clusters") %>% kable_styling(bootstrap_options = c("striped", "hover"), position = "center")
Characteristic of 4 clusters
Clust.1 Clust.2 Clust.3 Clust.4
good get queen swim
small service bed peninsula
great much width savoy
friendly one make nyc
staff say double top
clean can coffee fact
time check narrow one’s
just even refund 55th
walk us partner peninsula’s
square bar iron pet

By looking further into the clusters, it is once again difficult to differentiate them. However, Cluster 4 seems to be mentioning a lot the Peninsula, so we could associate cluster 4 to that hotel. On another note, Cluster 1 mentions “Times Square” which is part of the name of the Econo Lodge Times Square. Furthermore, “clean” and “small” were frequent terms associated to that hotel when performing the individual analyses. So one could assume that Cluster 1 represents that 2-star hotel. Lastly and more implicitely, one could assume that Cluster 2 would be more associated to the Four Season, since the terms characterizing it are more service-oriented. Whereas, Cluster 3 would probably be associated to the Hotel St.James, since the terms are more functionally-oriented.

Based on the Relaxed Word Mover’s Distance (RWMD)

We are now going to look if better results can be achieved using the RWMD. This dissimilarity measure is based on “how much change” is needed to transform one text into another. In other terms, it measures the minimal distance to travel in the word embedding space to reach another document.

#word embedding
review.coo <- fcm(all.tk, context="window", window = 5, tri=FALSE) 

#GloVe
p <- 2 
speech.glove <- GlobalVectors$new(rank = p, x_max = 10) # x_max is a needed technical option
speech.weC <- speech.glove$fit_transform(review.coo)
#> INFO  [18:24:55.249] epoch 1, loss 0.0231 
#> INFO  [18:24:55.319] epoch 2, loss 0.0161 
#> INFO  [18:24:55.366] epoch 3, loss 0.0145 
#> INFO  [18:24:55.372] epoch 4, loss 0.0137 
#> INFO  [18:24:55.379] epoch 5, loss 0.0131 
#> INFO  [18:24:55.385] epoch 6, loss 0.0127 
#> INFO  [18:24:55.393] epoch 7, loss 0.0123 
#> INFO  [18:24:55.399] epoch 8, loss 0.0120 
#> INFO  [18:24:55.406] epoch 9, loss 0.0117 
#> INFO  [18:24:55.411] epoch 10, loss 0.0115

review.we <- t(speech.glove$components)+speech.weC # unique representation

#DTM and RWMD
all.rwmd.model <- RelaxedWordMoversDistance$new(all.dfm, review.we)
all.rwms <- all.rwmd.model$sim2(all.dfm)
all.rwmd <- all.rwmd.model$dist2(all.dfm)

#plot
all.hc.rwmd <- hclust(as.dist(all.rwmd))
plot(all.hc.rwmd, cex=0.8, main = "Cluster Dendogram - RWMD")

Once again, clusters are not very clear and do not help to differentiate among hotels nor hotel categories.

Word & Document Embedding

We are now computing the Word Embedding to see what are the words used in the same contexts. Also, the Document Embedding anaylsis will be performed to see Which texts are used in the same contexts, as well.

Word Embedding

We focus on the 50 words that are the most used.

n.w <- apply(dfm(all.tk),2,sum) ## compute the number of times each term is used
index <- order(n.w, decreasing = TRUE)[1:50] # select the row-number corresponding to the 50 largest n.w

plot(review.we[index,], type='n',  xlab="Dim 1", ylab="Dim 2", main = "Word embedding - 50 words")
text(x=review.we[index,], labels=rownames(review.we[index,]))

What can be retrieved from the word embedding, is that the Peninsula is often used in the same context as “comfortable”, “nice” and “bar”. We can also notice that when the “service” is mentioned, it is often in the context of “friendly”. As highlighted previsouly, “service” was a frequent term of the 5-star hotels. Unsuprisingly, we have words such as “four” and “season” that are often used in the same context. Similarly, “front” and “desk” are also used in the same context.

Document Embedding

We do the same analysis for the documents, to uncover what texts are used in the same context.

nd <- length(all.tk) # number of documents
review.de <- matrix(nr=nd, nc=p) # document embedding matrix (1 document per row)
for (i in 1:nd){
  words_in_i <- review.we[all.tk[[i]],]
  review.de[i,] <- apply(words_in_i,2,mean)
}
row.names(review.de) <- names(all.cp)

plot(review.de, type='n',  xlab="Dim 1", ylab="Dim 2", main="Centroids - 100 documents")
text(x=review.de, labels=rownames(review.de))

This analysis confirms our previous assumption that it is hard to cluster the reviews based on the hotels or hotel categories. Once again, we cannot see a clear separation among them.

Topic modeling

We initially performed the Topic Modeling analysis on each hotel individually. Since the results were not conclusive we decided to see if better results could be obtained when combining all hotels together.

Latent Semantic Analysis (LSA)

As mentioned previously, our analysis of the DTM and TF-IDF matrices revealed that they were very sparse. It is thus interesting to perform dimension reduction techniques, such as LSA. We chose to look at three dimensions. Since the first dimension is associated to the length of the documents, we thus represent the dimensions 2 and 3. Unfortunately, we do not see a clear distinction between the texts. They cannot be differentiated by these two dimensions. Moreover, we have tried to perform the analysis on 5 dimensions too. The same inconclusive results can be drawn when plotting dimensions 2 against 3, 3 against 4 and 4 against 5.

reviews.lsa.dfm <- textmodel_lsa(all.dfm, nd=3)
head(reviews.lsa.dfm$docs) %>% kable(caption = "LSA - Documents") %>% kable_styling(bootstrap_options = c("striped", "hover"), position = "center")
LSA - Documents
text1 0.0764353 0.0664747 0.0289999
text2 0.0248978 0.0213641 0.0051001
text3 0.0385935 0.0385797 -0.0108326
text4 0.0330758 0.0313236 -0.0038522
text5 0.0585509 0.0353704 -0.0837359
text6 0.0699798 0.0363983 -0.0202157
head(reviews.lsa.dfm$features) %>% kable(caption = "LSA - Features") %>% kable_styling(bootstrap_options = c("striped", "hover"), position = "center")
LSA - Features
location 0.1776149 0.0866849 0.0895816
square 0.1041948 0.1213896 -0.1034193
still 0.0593848 -0.0100341 -0.0096541
quiet 0.0312317 0.0327320 0.0015446
friendly 0.0485027 0.0459776 0.0257990
staff 0.1356165 0.0831465 0.0699958
reviews.lsa.dfm$sk %>% kable(caption = "Topics' strength") %>% kable_styling(bootstrap_options = c("striped", "hover"), position = "center")
Topics’ strength
x
27.90199
19.10258
14.77440
ns <- apply(all.dfm, 1, sum)
plot(ns~reviews.lsa.dfm$docs[,1], main = "Correlation between document's length and dimension 1", xlab = "Dimension 1", ylab = "Document's length")
biplot(y=reviews.lsa.dfm$docs[,2:3],x=reviews.lsa.dfm$features[,2:3], col=c("grey","red"),
       xlab = "Dim 2", ylab="Dim 3", main = "PCA of LSA")

Latent Dirichlet Allocation (LDA)

After performing the LSA, we decide to look into the LDA, which is a more recent technique of topic modeling. We must highlight that two assumptions are taken into consideration in this analysis: a small number of topics are present in the corpus and a small number of terms are associated with each topic. For this analysis, we decide to set the number of topics to 4, since we have four hotels. This will enable us to see if we are able to differentiate hotels based on the LDA.

## convert quanteda object to topicmodels object
set.seed(123)
K <- 4
all.dtm <- convert(all.dfm, to = "topicmodels")

lda <- LDA(all.dtm, k = K)
terms(lda, 6) %>% kable(caption = "LDA - 4 Topics") %>% kable_styling(bootstrap_options = c("striped", "hover"), position = "center")
LDA - 4 Topics
Topic 1 Topic 2 Topic 3 Topic 4
time service good good
walk great service peninsula
just staff time time
clean bed desk staff
small new great one
location location get bar
topics(lda,1) %>% kable(caption = "Documents associated to topics") %>% kable_styling(bootstrap_options = c("striped", "hover"), position = "center") %>% scroll_box(height = "400px")
Documents associated to topics
x
text1 1
text2 3
text3 1
text4 1
text5 3
text6 1
text7 2
text8 1
text9 4
text10 3
text11 1
text12 3
text13 1
text14 3
text15 2
text16 1
text17 2
text18 1
text19 4
text20 4
text21 1
text22 2
text23 4
text24 2
text25 1
text26 1
text27 3
text28 1
text29 3
text30 1
text31 3
text32 1
text33 3
text34 2
text35 3
text36 1
text37 3
text38 3
text39 2
text40 4
text41 1
text42 2
text43 1
text44 1
text45 3
text46 1
text47 1
text48 2
text49 2
text50 1
text51 2
text52 1
text53 3
text54 2
text55 2
text56 2
text57 2
text58 3
text59 2
text60 2
text61 2
text62 4
text63 2
text64 3
text65 3
text66 4
text67 3
text68 2
text69 2
text70 2
text71 4
text72 4
text73 4
text74 4
text75 3
text76 1
text77 4
text78 2
text79 4
text80 4
text81 3
text82 3
text83 4
text84 2
text85 2
text86 3
text87 4
text88 3
text89 2
text90 4
text91 3
text92 4
text93 4
text94 2
text95 2
text96 3
text97 4
text98 3
text99 1
text100 4

By looking at most representative terms for each topic, we can see that many are overlapping. For instance, “location” and “staff” are present at least twice. We will look further into the LDA with the Betas and the Gammas.

Betas

The analysis of the Betas allow us to see what are the main terms associated to each topic.

#plot of beta
set.seed(345)
beta.td <- tidy(lda, matrix = "beta") 
beta.top.terms <- beta.td %>%
  group_by(topic) %>%
  top_n(10, beta) %>%
  ungroup() %>%
  arrange(topic, -beta)

beta.top.terms %>%
  mutate(term = reorder_within(term, beta, topic)) %>%
  ggplot(aes(term, beta, fill = factor(topic))) +
  geom_col(show.legend = FALSE) +
  facet_wrap(~ topic, scales = "free") +
  coord_flip() +
  scale_x_reordered() +
  ggtitle("Words associated to topics")

Once again, the terms associated to each topic are overlapping. Unfortunately, we cannot see any clear pattern in the betas.

Gammas

The analysis of the Gammas allow us to see which reviews are associated to which topic.

#plot of gamma
set.seed(567)
gamma.td <- tidy(lda, matrix = "gamma")

gamma.td %>%
  ggplot(aes(document, gamma, fill = factor(topic))) +
  geom_col(show.legend = FALSE) +
  facet_wrap(~ topic, scales = "free") +
  coord_flip() +
  scale_x_reordered() +
  ggtitle("Documents associated to topics")


As we can see, differentiation is once again difficult meaning that there are no clear topic assigned to a specific hotel.

Supervised learning

Hotel classification

In this part, we used supervised learning to classify the reviews according to their content, and some other features. First we tried to predict which hotel each review belongs to, then we grouped the 2-star and 5-star hotels together, and tried to predict only which class they belong to. In order to make the best possible predictions, we tried different algorithms, but we decided to show only the ones with the best accuracies. For all our algorithms, in addition to the review, we used the following features:
- The review’s length,
- The rating given with the review,
- The date of the review.

We tried different combinations of methods and learners:
- For the frequencies, DFM, TF and TF-IDF.
- As dimension reduction techniques, LSA and LDA.
- We tried to include a sentiment analysis.
- And we used different algorithms: Random forest, SVM, Naive Bayes and a Neural Network.

Below, we decided to show two models with a different combination, and our best model, a random forest using TF-IDF, LSA and active learning.

Random Forest with DFM and LDA

#remove the comment to show the accuracy depending on the number of topic
set.seed(1)


dfm <- dfm(tokens)

nd <- 43
# nd <- 2:50

acc.lda <- numeric(length(nd))

for (K in 1:length(nd)) {
  
rev.dtm <- convert(dfm, to = "topicmodels")
lda <- LDA(rev.dtm, k = nd[K])
gamma.td <- tidy(lda, matrix = "gamma")
gamma <- spread(gamma.td, topic, gamma)
gamma$document <- gamma$document %>% str_replace("text", "") %>% as.numeric()
gamma <- gamma %>% arrange(document) %>% select(-document)


df <- data.frame(Hotel = y, x = gamma)


df <- cbind(df,
            length = sapply(tokens, length),
            rating = docvars(tokens, c("rating")),
            date = docvars(tokens, c("date"))
            )

index.tr <- sample(size=round(0.8*length(y)), x=c(1:length(y)), replace=FALSE)
df.tr <- df[index.tr,]
df.te <- df[-index.tr,]
Hotel.fit <- ranger(Hotel ~ ., 
                     data = df.tr, importance = "impurity")
pred.te <- predict(Hotel.fit, df.te)

  acc.lda[K] <- confusionMatrix(data=pred.te$predictions, reference = df.te$Hotel)$overall[1]
}



# plot(acc.lda ~ nd, type='b')
# accuracy <- cbind(acc.lda, nd) %>% as.data.frame()
# max_value <- accuracy %>% dplyr::arrange(desc(acc.lda)) %>% head(5)
# print(max_value)

In this model, we try to use a random forest with the DFM and LDA. We obtain a maximum accuracy of 0.775 with 43 nodes. This number of nodes has been obtained through some hyperparameter tuning. The details can be seen in the following confusion matrix.

confusionMatrix(data=pred.te$predictions, reference = df.te$Hotel)$table %>% kable(caption = "Confusion matrix") %>% kable_styling(bootstrap_options = c("striped", "hover"), position = "center", full_width = FALSE)
Confusion matrix
1 2 3 4
67 8 3 7
20 85 6 6
0 4 83 16
3 5 12 75

After different trials, we decided to use TF-IDF instead of DFM and LSA instead of LDA as this combination yields the highest accuracy.

Random Forest with a TF-IDF, sentiment analysis and LSA

set.seed(1)

dfm <- dfm(tokens) %>% dfm_tfidf()

review.sent <- tokens_lookup(tokens, dictionary = data_dictionary_LSD2015) %>% dfm()


lsa <- textmodel_lsa(dfm, nd = 14)


df <- data.frame(Hotel = y, x = lsa$docs, sentiment_negative = review.sent[, 1], sentiment_positive = review.sent[,2]) %>% select(-sentiment_positive.doc_id, -sentiment_negative.doc_id)

df <- cbind(df,
            length = sapply(tokens, length),
            rating = docvars(tokens, c("rating")),
            date = docvars(tokens, c("date"))
)



index.tr <- sample(size=round(0.8*length(y)), x=c(1:length(y)), replace=FALSE)
df.tr <- df[index.tr,]
df.te <- df[-index.tr,]
Hotel.fit <- ranger(Hotel ~ ., 
                     data = df.tr, importance = "impurity")
pred.te <- predict(Hotel.fit, df.te)

This time, we reach an accuracy of 0.8625 with a random forest using TF-IDF, LSA, and the sentiment of the review as a feature. We selected 14 topics in the LSA as a result of a hyperparameter tuning. The details can be seen in the following confusion matrix.

confusionMatrix(data=pred.te$predictions, reference = df.te$Hotel)$table %>% kable(caption = "Confusion matrix") %>% kable_styling(bootstrap_options = c("striped", "hover"), position = "center", full_width = FALSE)
Confusion matrix
1 2 3 4
79 12 2 3
8 88 4 5
0 1 87 5
3 1 11 91

Unfortunately, the sentiment does not increase the accuracy of the model, so we decided to not include it in our final model.

Best model: Active learning with a Random Forest with a TF-IDF and a LSA with 14 topics

set.seed(1)

dfm <- dfm(tokens) %>% dfm_tfidf()
  
lsa <- textmodel_lsa(dfm, nd= 14)

df <- data.frame(Hotel = y, x = lsa$docs)

df <- cbind(df,
            length = sapply(tokens, length),
            rating = docvars(tokens, c("rating")),
            date = docvars(tokens, c("date"))
            )

eps <- 1e-12

index.tr <- sample(size=round(0.8*length(y)), x=1:length(y), replace=FALSE)
df.tr <- df[index.tr,]
df.te <- df[-index.tr,]

index.val <- sample(size=50, x=1:nrow(df.te), replace=FALSE)
df.val <- df.te[index.val,]

## Initial step
index <- sample(size=50, x=1:length(index.tr), replace=FALSE)
df.al <- df.tr[index,]
df.nal <- df.tr[-index,]

hotel.fit.al <- ranger(Hotel ~ ., data = df.al, importance = "impurity")
pred.val.al <- predict(hotel.fit.al, df.val, type="response")
acc.vec <- confusionMatrix(data=pred.val.al$predictions, reference = df.val$Hotel)$overall[1]
size.vec <- nrow(df.al)

while (nrow(df.al) <= (nrow(df.tr)-50)){
  hotel.fit.al <- ranger(Hotel ~ ., 
                         data = df.al, probability=TRUE, importance = "impurity") 
  pred.nal <- predict(hotel.fit.al, df.nal)$predictions 
  ent <- -(pred.nal[,1]+eps)*log(pred.nal[,1]+eps) - (pred.nal[,2]+eps)*log(pred.nal[,2]+eps)
  index <- order(ent, decreasing = TRUE)[1:50]
  
  df.al <- rbind(df.al, df.nal[index,])
  df.nal <- df.nal[-index,]
  size.vec <- c(size.vec, nrow(df.al))

  hotel.fit.al <- ranger(Hotel ~ ., data = df.al, importance = "impurity")
  pred.val.al <- predict(hotel.fit.al, df.val, type="response")
  acc.vec <- c(acc.vec, confusionMatrix(data=pred.val.al$predictions, reference = df.val$Hotel)$overall[1])
}

plot(acc.vec~size.vec, type="b", xlab="sample size", ylab="Accuracy", pch=20, main = "We reach a maximum accuracy with 400 observations")

# accuracy <- cbind(acc.vec, size.vec) %>% as.data.frame()
# max_value <- accuracy %>% dplyr::arrange(desc(acc.vec)) %>% head(5)
#print(max_value)

This is our best model, with which we reach an accuracy of 0.9, with a minimum sample of 400 observations. We obtain these results using active learning on a random forest with TF-IDF and LSA of 14 topics.

Looking at the confusion matrix of our previous models, we can see that we are very good at distinguishing between 2-star and 5-star hotels, but we are consistently struggling when it comes to predicting which hotel it is precisely. For the rest of the analysis, we will therefore group the two 2-star hotels and the two 5-star hotels together, and we will try to find the best model to predict which class the hotel belongs to.

Category classification

With the hotels grouped by categories (5 stars vs 2 stars), we tested the same combinations as before. We will show one example using SVM and our best result.

SVM

set.seed(1)

dfm <- dfm(tokens) %>% dfm_tfidf()

review.sent <- tokens_lookup(tokens, dictionary = data_dictionary_LSD2015) %>% dfm()

lsa <- textmodel_lsa(dfm, nd=18)

df <- data.frame(Type = y, x = lsa$docs)

df <- cbind(df,
            length = sapply(tokens, length),
            rating = docvars(tokens, c("rating")),
            date = docvars(tokens, c("date"))
)

index.tr <- sample(size=round(0.8*length(y)), x=c(1:length(y)), replace=FALSE)
df.tr <- df[index.tr,]
df.te <- df[-index.tr,]


svm.model <- svm(Type ~ ., data = df.tr, kernel="radial")
svm.pred  <- predict(svm.model, df.te)

With this SVM model using TF-IDF and LSA, we reach an accuracy of 0.97. As we did in the previous section, we selected the number of topics of the LSA (18) through some hyperparameter tuning. As a result, we can see that our model is very good at predicting only the class of the hotel. The details can be seen in the following confusion matrix.

confusionMatrix(data=svm.pred, reference = df.te$Type)$table %>% kable(caption = "Confusion matrix") %>% kable_styling(bootstrap_options = c("striped", "hover"), position = "center", full_width = FALSE)
Confusion matrix
0 1
0 189 9
1 3 199

Best model: Active learning with a random forest with a TF-IDF and a LSA with 18 topics

set.seed(1)

dfm <- dfm(tokens) %>% dfm_tfidf()
  
lsa <- textmodel_lsa(dfm, nd= 18)


df <- data.frame(Type = y, x = lsa$docs)

df <- cbind(df,
            length = sapply(tokens, length),
            rating = docvars(tokens, c("rating")),
            date = docvars(tokens, c("date"))
            )

eps <- 1e-12

index.tr <- sample(size=round(0.8*length(y)), x=1:length(y), replace=FALSE)
df.tr <- df[index.tr,]
df.te <- df[-index.tr,]

index.val <- sample(size=50, x=1:nrow(df.te), replace=FALSE)
df.val <- df.te[index.val,]

## Initial step
index <- sample(size=50, x=1:length(index.tr), replace=FALSE)
df.al <- df.tr[index,]
df.nal <- df.tr[-index,]

Type.fit.al <- ranger(Type ~ ., data = df.al, importance = "impurity")
pred.val.al <- predict(Type.fit.al, df.val, type="response")
acc.vec <- confusionMatrix(data=pred.val.al$predictions, reference = df.val$Type)$overall[1]
size.vec <- nrow(df.al)


while (nrow(df.al) <= (nrow(df.tr)-50)){
  Type.fit.al <- ranger(Type ~ ., 
                         data = df.al, probability=TRUE, importance = "impurity") 
  pred.nal <- predict(Type.fit.al, df.nal)$predictions 
  ent <- -(pred.nal[,1]+eps)*log(pred.nal[,1]+eps) - (pred.nal[,2]+eps)*log(pred.nal[,2]+eps)
  index <- order(ent, decreasing = TRUE)[1:50]
  
  df.al <- rbind(df.al, df.nal[index,])
  df.nal <- df.nal[-index,]
  size.vec <- c(size.vec, nrow(df.al))

  Type.fit.al <- ranger(Type ~ ., data = df.al, importance = "impurity")
  pred.val.al <- predict(Type.fit.al, df.val, type="response")
  acc.vec <- c(acc.vec, confusionMatrix(data=pred.val.al$predictions, reference = df.val$Type)$overall[1])
}

plot(acc.vec~size.vec, type="b", xlab="sample size", ylab="Accuracy", pch=20, main = "We reach a maximum accuracy with 150 observations")

accuracy <- cbind(acc.vec, size.vec) %>% as.data.frame()
max_value <- accuracy %>% dplyr::arrange(desc(acc.vec)) %>% head(5)

With our best model, a random forest with TF-IDF, LSA and applying active learning, we reach an accuracy of 100% with a sample of only 150!

Importance of each variable
x
x.4 345.868251
x.3 176.038986
rating 42.669227
date 27.965753
x.6 20.815527
x.5 20.409302
x.11 16.079827
x.8 15.418171
x.9 15.301426
x.10 14.985432
x.15 14.864344
x.12 14.337550
x.7 11.071965
x.13 10.306387
x.2 9.182259
x.14 8.454034
x.1 7.711897
x.18 7.475292
x.16 7.091858
length 6.838478
x.17 6.577323

If we take a closer look at the variables, we can see that the date and the ranking are among the most important variables with x.4, x.3 and x.6. Unfortunately, we cannot interpret any of the variable x because they are pseudo-variables created by LSA and, therefore, don’t have a meaning.

Conclusion

We found that text mining can be a useful tool to increase the accuracy of a model. Even if the accuracy is more than acceptable when trying to predict a specific hotel, it can be noticed that the model has difficulties distinguishing between hotels of the same category,i.e. the 5-star hotels. Therefore, we decided to investigate the case where we try to predict simply the category of the hotel. Trying to predict only the category, we have achieved an impressive accuracy of 100%! Therefore, we can conclude that even though text mining can be really useful to predict a specific hotel, theses techniques are lacking some precision. Moreover, the interpretability of most text mining models is difficult.